Gerador de números aleatórios
Escolha um intervalo e quantos números você precisa: eles são sorteados com o gerador criptográfico do seu navegador, perfeito para rifas, jogos, sorteios e noites de bingo.
Por que usamos crypto.getRandomValues em vez de Math.random
Este gerador usa crypto.getRandomValues, a fonte de aleatoriedade criptograficamente segura integrada ao seu navegador, combinada com amostragem por rejeição para evitar viés: todos os números do intervalo têm exatamente a mesma chance de sair. O conhecido Math.random, pensado para animações e jogos, não oferece as mesmas garantias de imprevisibilidade. Por isso, para sortear prêmios, escolher um vencedor entre amigos ou qualquer escolha “às cegas”, a versão criptográfica é a melhor aposta.
Sortear com ou sem repetição
Com “somente números únicos” você tem um sorteio como o de uma loteria ou de um globo de bingo: cada número só pode sair uma vez, então a quantidade pedida não pode ser maior que o tamanho do intervalo (de 1 a 100 dá para sortear no máximo 100 números). Desmarque a caixa e funciona como jogar um dado várias vezes seguidas: repetições são possíveis e totalmente normais, útil para simular lançamentos de dados, gerar dígitos de teste ou criar dados de exemplo aleatórios.
O que “aleatório” significa para um computador
Um computador é uma máquina determinística: sozinho, ele não consegue produzir nada verdadeiramente aleatório. Os geradores comuns partem de uma semente e aplicam uma fórmula, então a sequência é calculável: conhecendo números suficientes já sorteados, dá para prever os próximos.
Já os geradores criptográficos coletam desordem real do sistema: os microssegundos entre duas teclas pressionadas, os tempos de resposta do disco, o ruído do hardware. É a diferença entre um número bom o bastante para um jogo e um número capaz de sustentar um sorteio que pode ser contestado.
O erro do módulo
A forma ingênua de obter um número entre 1 e 10 a partir de um gerador é usar o resto da divisão por 10. Quase funciona: se o intervalo de partida não é um múltiplo exato do número de resultados, os primeiros valores saem um pouquinho mais vezes do que os últimos.
Em um dado de seis faces o viés é invisível, mas em um sorteio com muitos participantes ele passa a ser mensurável. O remédio certo é descartar e repetir quando o número cai na sobra que desequilibra a conta: custa uma tentativa extra de vez em quando e devolve uma distribuição realmente uniforme.
Sequências aleatórias não parecem aleatórias
Em uma série de cem números entre 1 e 10, tirar o mesmo número duas vezes seguidas é normal e acontece com frequência; suspeita seria a ausência total de repetições. A sensação de que “este gerador repete demais” quase sempre é uma falha da intuição, não do programa.
É o mesmo motivo pelo qual alguns aplicativos de música tiveram que deixar a reprodução aleatória menos aleatória do que a de verdade: as pessoas reclamavam das músicas repetidas. O acaso honesto forma aglomerados, e um acaso que “parece aleatório” na verdade foi domesticado.
Veja também
Para sortear nomes em vez de números, existe o Sorteio de nomes aleatório, e para uma escolha direta entre duas opções, o Sim ou não?. Se você precisa de uma senha imprevisível, o caminho é o Gerador de senhas.