Возможный дубликат:
Почему кажется, что мой генератор случайных чисел не является случайным в С#?
Как я могу генерировать поистине (не псевдо) случайные числа с помощью С#?
Я создал игру в кости, в которой кости основаны на процентиле, 1-100.
public static void Roll()
{
Random rand = new Random((int)DateTime.Now.Ticks);
return rand.Next(1, 100);
}
Но я не чувствую себя настоящим случайным, основанным на текущем времени.
Если я делаю
for (int i = 0; i < 5; i++)
{
Console.WriteLine("#" + i + " " + Roll());
}
Все они будут одинаковыми значениями, потому что DateTime.Now.Ticks
не изменился, он засеял тот же номер.
Я думал, что могу генерировать новое случайное семя, если семя было таким же из-за текущего времени, но оно не похоже на честный "повторный ролл"
Что мне делать, чтобы попытаться скопировать близкий к реальному/честному рулону? Должен ли я использовать класс RNGCryptoServiceProvider
для генерации рулонов вместо?