При поиске лучших попыток генерации действительно случайных чисел я наткнулся на этот пример кода.
Ищите мнения по этому фрагменту.
using System;
using System.Security.Cryptography;
private static int NextInt(int min, int max)
{
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
byte[] buffer = new byte[4];
rng.GetBytes(buffer);
int result = BitConverter.ToInt32(buffer, 0);
return new Random(result).Next(min, max);
}
Источник: http://www.vcskicks.com/code-snippet/rng-int.php
Будет ли это предпочтительнее использовать семпл подсчета тиков, например:
Random rand = new Random(Environment.TickCount);
rand.Next(min, max);
Примечание:
Я не ищу сторонних поставщиков случайных данных, таких как Random.org, поскольку такая зависимость не является реалистичной для приложения.