Inspired by this question: Using two separate DNS servers on the same domain
When you have multiple nameservers that resolve your domain, when is e.g. the ns2 used? Only when ns1 is offline?
I worked as a network engineer during the earliest days of the Internet until I retired from that work. As well, I was a web host at one point and understand the original intent of having more than one DNS for hosting domain names. I am working off of older rules in this answer. Some of them may have been relaxed.
In the very early days, it was not uncommon for downtime and connectivity problems to effect resolving domain names. As a result, any DNS that is a SOA (statement of authority) was required to be hosted on two live systems. However, the problems did not stop there. It was further required that both name servers operating as a SOA reside on separate physical networks and that any domain name SOA not reside on a DNS that is a sub-domain of the domain itself.
In otherwords, example.com cannot have it's SOA on ns1.example.com and ns2.example.com. It was required that the example.com SOA to exist somewhere else such as ns1.examplednshost.com and ns2.examplednshost.com. Ns1.examplednshost.com and ns2.examplednshost.com would have to be on separate physical networks to remove any single point of failure. After that, ns1.example.com and ns2.example.com can be anything.
In my case when hosting sites, my domain name SOA was externally hosted by two other companies on two separate networks, however, the master DNS was on my domain. This means that the SOA DNS servers pulled from my master to populate their records. As well, my DNS servers were also an SOA for my domain (for simplicity- and not to be confused as my SOA as being official for my domain) and for many others that I hosted. Each DNS server resided on their own frame network. There were actually 5 DNS servers hosting my domain name and 4 of them pulled from the master in a cascading topology.
Having two NS servers is for fail-over. Often NS servers are taken in list order depending upon how a system is configured, however, some systems will pseudo load-balance by using all NS servers in a list.