If I have contradictory NS records for my domain:
dig +trace example.com
example.com. 172800 IN NS ns1.webfaction.com.
example.com. 172800 IN NS ns2.webfaction.com.
example.com. 172800 IN NS ns2.mydyndns.org.
Which one[s] will be queried by my DNS client? Does the ordering matter? How can I tell the ordering?
The ordering in which the lists are presented to you is randomly ordered in most cases. But you (as the dns-admin) can also configure sequential output (round-robin) or static output. Depends on the administrators mood.
Which entry a client chooses is also up to the developer of the client.
dig +trace picks a random entry.
In any case, the only reason for this is load balancing. If all servers are running fine it doesn't matter which entry you actually use.
I don't see the same output when running the same command.
But to answer your question, a random one will be chosen and the order you list them in does not matter. You can see this with successive runs:
I believe that the resolver uses round robin methodology to query DNS hosts.