Tools100% Local
← Todas as ferramentas

Gerador de Números Aleatórios

crypto.getRandomValues · uniforme · no navegador

Extraia inteiros ou decimais criptograficamente aleatórios de crypto.getRandomValues. A página usa amostragem por rejeição para que o resultado seja uniforme em qualquer intervalo — sem viés modulo. Intervalo configurável, quantidade, decimais, ordem, separador de saída e modo apenas-único.
Modo
Intervalo
Quantidade
Único
Ordenar
Formato
 
waiting
Click Generate
Clique para copiar

Por que isso é "verdadeiramente aleatório"

Navegadores expõem duas fontes aleatórias: Math.random(), um gerador pseudo-aleatório rápido mas determinístico por execução, e crypto.getRandomValues(), um RNG criptograficamente seguro semeado a partir do pool de entropia do sistema operacional — a mesma fonte usada para gerar chaves de sessão TLS. Esta página usa a última para cada valor que você sorteia.

Evitando viés de módulo

Implementações ingênuas de inteiro-a-partir-de-RNG fazem rand() % n — isso dá um peso ligeiramente maior à parte baixa do intervalo quando n não divide o tamanho da palavra do RNG uniformemente. O viés é pequeno, mas real e trivialmente detectável em milhões de sorteios.

Modo decimal

Quando você pede decimais, a página sorteia um valor uniforme em [0, 1) a partir de 53 bits de crypto.getRandomValues e o escala para o intervalo solicitado. Até 15 dígitos de precisão estão disponíveis — o limite prático dos floats de precisão dupla IEEE-754, que são os números do JavaScript.

Modo único

Com Sem duplicatas ligado, a página usa um Fisher–Yates parcial do intervalo inteiro, o que garante escolhas únicas uniformemente distribuídas — a abordagem padrão para amostragem justa sem reposição (o mesmo algoritmo usado para embaralhar cartas ou sortear uma loteria sem re-sorteios).

Privacidade

Cada valor é gerado localmente. A página não faz requisições de rede após o carregamento estático inicial, e não há scripts de analítica. Nenhuma das suas entradas ou valores gerados sai da página.