PK Systems PK Systems
Geradores

Gerador de Números Aleatórios

Sorteie números em qualquer intervalo — com ou sem repetição, ordenados ou embaralhados, prontos para colar.

Gerador de Números Aleatórios

Resultado

O que esta ferramenta faz

Gera inteiros aleatórios em qualquer intervalo, em qualquer quantidade de 1 a 10.000. Alterne se duplicatas são permitidas (off para sorteios estilo loteria, on para simular sequências de dados ou moedas), escolha ordenar a saída crescente ou deixar embaralhada e selecione o formato — um número por linha, separado por vírgula para planilhas, por espaço para colar no terminal, ou como array JavaScript para código. A aleatoriedade é uniforme de verdade: usamos crypto.getRandomValues() com rejection sampling para eliminar o viés de módulo que Math.random() % range introduz. Para sorteios únicos em ranges densos, rodamos um Fisher-Yates parcial; para ranges esparsos, um hash-set com retentativas. Tudo roda local — sem upload, sem log, sem limite de taxa.

Como usar

Defina mínimo e máximo — podem ser negativos, zero ou qualquer valor. Defina quantos números quer. Decida se permite duplicatas (off para sorteios, on para lançamentos repetidos). Decida se ordena crescente. Escolha o formato: linhas, vírgula, espaço ou array. Clique em Gerar. O resultado aparece no painel; se pediu um número, ele aparece grande; se pediu vários, vai num bloco de código rolável. Clique em Copiar para mandar tudo para o clipboard. Re-executar com as mesmas configurações dá um novo sorteio toda vez — não há semente.

Como a aleatoriedade funciona

Cada sorteio amostra um inteiro de 32 bits de crypto.getRandomValues() e rejeita qualquer valor acima de floor(2^32 / range) * range. O sorteio aceito módulo range mais min é o seu número — comprovadamente uniforme em todo o range. Para sorteios únicos, usamos uma de duas estratégias: quando o range é denso (≤ 200.000 valores), materializamos o pool inteiro e fazemos um Fisher-Yates parcial nas primeiras count entradas — é O(count), não O(range). Quando o range é esparso e grande, usamos um hash-set com retentativas — limitado pelo teto de 10.000 para que as retentativas não explodam. A ordenação (quando ligada) é uma passada final crescente.

Configurações comuns

Algumas combinações de exemplo para começar.

Uso Configurações
Números da Mega-Sena (6/60)Mín 1, máx 60, qtd 6, sem duplicatas, ordenado
Sequência de moedas (10 lances)Mín 0, máx 1, qtd 10, com duplicatas
Byte de cor aleatórioMín 0, máx 255, qtd 1
3 vencedores entre 100Mín 1, máx 100, qtd 3, sem duplicatas

Perguntas frequentes

É realmente aleatório?
Sim — uniforme comprovadamente. Usamos crypto.getRandomValues() com rejection sampling, que é a abordagem padrão de CSPRNG para ranges de inteiros sem viés.
E se eu pedir mais únicos do que cabe no range?
A ferramenta detecta e mostra erro — é impossível tirar 10 únicos num range de 5. Ative duplicatas ou aumente o range.
Posso semear o RNG?
Não. CSPRNGs por design não podem ser semeados para reprodutibilidade — isso quebraria a garantia de segurança. Se precisa de saída "aleatória" reprodutível em testes, use uma biblioteca PRNG semeada no código.
Qual o máximo de quantidade?
10.000 por execução. Acima disso, a saída fica desconfortável no navegador; para sorteios maiores, rode a ferramenta algumas vezes ou gere no servidor.
Funciona com números negativos?
Sim. Mín e máx podem ser quaisquer inteiros, positivos ou negativos. O range é max − min + 1, então confira que máx ≥ mín.
Algo é enviado pela rede?
Não. A geração roda no seu navegador. A saída fica local até você copiar.