using System.Diagnostics;
using System.Collections.Generic;
using System.Security.Cryptography;
public static void Main()
Stopwatch sw1 = new Stopwatch();
Stopwatch sw2 = new Stopwatch();
string alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char[] chars = alphabet.ToCharArray();
byte[] randomData = new byte[64];
using (RNGCryptoServiceProvider crypto = new RNGCryptoServiceProvider())
crypto.GetBytes(randomData);
StringBuilder result = new StringBuilder(64);
for (int i = 0; i < 1000000; i++)
foreach (byte b in randomData)
var x = alphabet[b % alphabet.Length];
for (int i = 0; i < 1000000; i++)
foreach (byte b in randomData)
var x = chars[b % chars.Length];
Console.WriteLine(sw1.ElapsedMilliseconds);
Console.WriteLine(sw2.ElapsedMilliseconds);
Console.WriteLine(result.ToString());