Duplicar posible:
Why does it appear that my random number generator isn't random in C#?
How can I generate truly (not pseudo) random numbers with C#?Creación de un verdadero azar
He creado un juego de dados en el que los dados se basa en un percentil, 1-100.
public static void Roll()
{
Random rand = new Random((int)DateTime.Now.Ticks);
return rand.Next(1, 100);
}
Pero no me siento como si fuera un verdadero azar según la hora actual.
Si hago
for (int i = 0; i < 5; i++)
{
Console.WriteLine("#" + i + " " + Roll());
}
todos ellos serían los mismos valores, debido a que el DateTime.Now.Ticks
no cambió, se sembró el mismo número.
Estaba pensando que podría generar una nueva semilla aleatoria si la semilla era la misma debido al tiempo actual, pero no se siente como un honesto "re-roll"
¿Qué debo hacer para intentar y replicar una tirada de dados casi real/honesta? ¿Debería usar la clase RNGCryptoServiceProvider
para generar rollos?
Sugiero leer esto: http://csharpindepth.com/Articles/Chapter12/Random.aspx – Oded
hay muchas variaciones de esta pregunta en SO. Aquí está uno de ellos ... [¿Por qué parece que mi generador de números aleatorios no es aleatorio en C#?] (Http://stackoverflow.com/questions/932520/why-does-it-appear-that-my- random-number-generator-isnt-random-in-c) ... Marcado como engañado. (Solo debe tener una única instancia estática de su Aleatorio en lugar de un nuevo Aleatorio para cada Tirada) – spender
¿qué es "verdadero aleatorio"? – Sandy