Various things here. 

Check this prematurely can affect to the performance, is better do a lazy check of this.
You said that this provides a built-in failover but almost any exception thrown will break the execution.
Finally, Why shuffle? The code loops over all servers and only the last server in the config is used by the object instance.Also shuffle is a very bad idea because you can have a LDAP server locally with lower latency and another LDAP as mirror in another region of the world as backup, so you will prefer always connect by a certain order