About consul built-in load balance

Recent I try to use the consul but I confused about the consul load balance built-in strategies。Is there have any articles intro this ?

For example, when register one service with 3 instance copies. I can not figure out the consul client decide which instance for used? that’s load balance strategy based? Random or ip loop or hash ?


Consul does a random shuffle before returning the results.

Here is the implementation, if you are interested: