Я знаю, как генерировать случайное число между 0 и 1, используя метод NextDouble генератора псевдослучайных чисел.
var rng1 = new System.Random();
var random1 = rng1.NextDouble(); // generates a random double between 0 and 1.0
И я знаю, как заполнить случайный массив байтов, используя криптографически безопасный генератор случайных чисел.
Byte[] bytes = new Byte[8];
var rng2 = new System.Security.Cryptography.RNGCryptoServiceProvider();
rng2.GetBytes(bytes); // generates 8 random bytes
Но как я могу преобразовать вывод байтового массива RNGCryptoServiceProvider в случайное число, равномерно распределенное между 0 (включительно) и 1 ( эксклюзив)?