internal static byte[] GenerateRandomBytes(int length) { var bytes = new byte[length]; RngProvider.GetBytes(bytes); return(bytes); }
unsafe private ulong SampleImpl() { lock (Pool.SyncRoot) { if ((CurrentIndex + 8) > Pool.Length - 1) { RngProvider.GetBytes(Pool); CurrentIndex = 0; } else { CurrentIndex += 8; } fixed(byte *ptr = &Pool[CurrentIndex]) { return(*((UInt64 *)ptr)); } } }
unsafe private int NextImpl() { lock (Pool.SyncRoot) { if ((CurrentIndex + 4) > Pool.Length - 1) { RngProvider.GetBytes(Pool); CurrentIndex = 0; } else { CurrentIndex += 4; } fixed(byte *ptr = &Pool[CurrentIndex]) { return(*((int *)ptr)); } } }