Defina o intervalo e sorteie. Os dois extremos entram e cada número do intervalo tem a mesma chance.
Intervalo, quantidade e repetição
Digite o menor e o maior número que você aceita. Os dois entram no sorteio e podem ser negativos. Dá para pedir até 1.000 números de uma vez.
“Sem números repetidos” faz o sorteio funcionar como bolinhas numeradas em um globo: a que saiu não volta. É a opção para rifa, bingo e palpite de loteria. Desmarque quando cada número é independente, como ao simular um dado que não existe no rolador de dados.
Por que “aleatório módulo n” não basta
O jeito rápido de obter um número de 1 a 100 é pegar um número aleatório qualquer, dividir por 100 e ficar com o resto. Ele também é um pouco injusto. Tome um byte aleatório, que vai de 0 a 255: os restos de 0 a 55 podem ser produzidos por três bytes diferentes, e os restos de 56 a 99, por só dois. O primeiro grupo sai uma vez e meia mais que o segundo.
Este gerador tira 53 bits aleatórios por vez e rejeita o valor que cai no último trecho incompleto, sorteando outro. O que sobra se divide por igual, e cada número do seu intervalo fica com exatamente a mesma chance.
De onde vem a aleatoriedade
De crypto.getRandomValues, parte da Web Crypto API presente em todos os navegadores atuais. Ela é alimentada pela reserva de entropia do sistema operacional e foi projetada para que conhecer as saídas anteriores não ajude a prever a próxima. A antiga Math.random não dá essa garantia e não é usada em nenhum ponto deste site.
Vai sortear pessoas, e não números? Cole os nomes no sorteador de nomes, que ainda entrega comprovante.