private Address SelectRandomNode(IList<Address> addresses) { if (addresses == null || addresses.Count == 0) return null; return addresses[ThreadLocalRandom.Current.Next(addresses.Count)]; }