internal static void GetRandomBytes (byte[] buffer) { #if NET_3_5 var random = new RNGCryptoServiceProvider (); random.GetBytes (buffer); #elif !PORTABLE && !COREFX using (var random = new RNGCryptoServiceProvider ()) random.GetBytes (buffer); #else lock (random) { random.NextBytes (buffer); } #endif }