Seed

Os números "aleatórios" são gerados atráves de uma seed, algumas linguagens permite você setar a seed (não é o caso do JavaScript).

Em jogos é normal se utilizar o os-time em um infinite-loop para seed. Então uma sugestão para resultados mais aleatórios mexa na seed a cada interação.

Opa, mesmo que não seja muito relacionado ao post eu ainda quero complementar esse fato aleatório. Não acho que isso impacte nós meros mortais, deve ser mais significantes para criptografia e afins, mas até onde eu sei não é uma boa prática setar a seed mais de uma vez. Eu acho que já vi isso acontecendo em jogo, tenho alguma memória de alguém falar que em stardew valley a seed é setada a cada passo do player, mas não sei de onde veio isso. Mas para computação em geral, boa prática é só setar uma vez mesmo. O motivo é que re-setar a seed vai diminiur a aleatóriadade como um todo, não consigo achar muitas fontes sobre, só umas Pessoas bravas no stackoverflow e uma nota na documentação do cpp. Se você conhecer algum conteudo falado do porque o jogos fazerem desse jeito eu ficaria bem grato, pesquisar sobre seed e jogos no google só me leva a geração do munto e tals

Se vc seta o *seed* a cada iteração de um loop, e ele é baseado em algo como o timestamp atual (que é uma implementação bem comum), corre o risco de 2 iterações serem tão rápidas que acabam usando o mesmo *seed*, e aí ele vai gerar o mesmo número. De qualquer forma, isso é desnecessário. Basta setar apenas uma vez no início, que os algoritmos usados atualmente garantem uma boa aleatoriedade. Quanto à criptografia, não tem nada a ver com setar o *seed* várias vezes, e sim com o algoritmo usado. Leia mais sobre isso [aqui](https://crypto.stackexchange.com/q/39186), [aqui](https://crypto.stackexchange.com/q/12436) e [aqui](https://stackoverflow.com/q/101337).