[C-Sharp] Random retornando sempre o mesmo valor

.NET

C#

20/10/2016

Porque o System.Random está sempre retornando o mesmo valor dentro de um loop?

foreach(var dado in dados)
{
Random rnd = new Random();
dado valor = rnd.Next(1, dado.tipo);
}
Victor Machado

Victor Machado

Curtidas 0

Melhor post

Jones Granatyr

Jones Granatyr

20/10/2016

Opa! Tente colocar o Random rnd = new Random() fora do for. Quando você precisa gerar mais de um número aleatório, deve reusar o objeto rnd
GOSTEI 1

Mais Respostas

Lucas Campos

Lucas Campos

20/10/2016

O Random gera pseudo números aleatórios baseado em uma seed, nesse caso você está gerando com a mesma seed vezes e vezes seguidas por estar em um loop e a cada vez que reusa o Random reseta novamente a seed.

Poderia usar a solução do Jones.

Ou ainda, você também poderia fazer:
Random r = new Random(DateTime.Now.Millisecond);
GOSTEI 0
POSTAR