
Isso é genial; eu poderia ter usado isso há alguns anos. Estou postando aqui para guardar. Note que eu NÃO estou usando a classe random. A classe random não é verdadeiramente aleatória. É baseada no tempo. O tempo é previsível.
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
byte[] result = new byte[8];
rng.GetBytes(result);
double rand = (double)BitConverter.ToUInt64(result, 0) / ulong.MaxValue;
//40 percent chance of being selected.
if (rand > 0.40d )
{
...
}
Autor: Chuck Conway é especialista em engenharia de software e IA Generativa. Conecte-se com ele nas redes sociais: X (@chuckconway) ou visite-o no YouTube.