🔧Toolify

Gerador de Números Aleatórios (criptograficamente seguro, modo único)

Escolha um mínimo, máximo e quantidade para gerar inteiros aleatórios criptograficamente seguros. Ative 'únicos' para amostragem sem reposição (rifas, loterias).

Defina um intervalo e clique em 'Gerar novamente' para obter números aleatórios.

Como funciona

Por que isso é realmente aleatório

Usamos crypto.getRandomValues — a fonte de random criptograficamente segura do navegador — em vez de Math.random(). A saída do CSPRNG não pode ser prevista a partir de valores anteriores, o que importa para sorteios, aplicativos de jogos e qualquer uso onde 'aleatório' é um requisito real, não apenas 'arbitrário'.

Também usamos amostragem por rejeição para tornar a distribuição exatamente uniforme no intervalo escolhido. O simples 'random % intervalo' introduz viés quando o intervalo não divide igualmente em 2³². A amostragem por rejeição descarta valores que causariam viés e tenta novamente, então cada número no intervalo tem exatamente a mesma probabilidade.

Único vs com repetição

Modo padrão: cada número é independente — podem ocorrer repetições. Isso é o que 'aleatório' geralmente significa no uso casual (jogar dados, escolher um filme, testes aleatórios).

Modo único: amostragem sem reposição — uma vez que um número é escolhido, ele não pode ser escolhido novamente no mesmo lote. Útil para: sorteios de loteria (ex.: 6 números de 1-60), rifas (sortear ganhadores), atribuição de equipes e qualquer situação de 'escolher N de M'. Requer quantidade ≤ intervalo.

Casos de uso comuns

Loteria / rifa: 6 números únicos de 1-60, ou qualquer que seja o seu sorteio. Ative 'únicos'.

Dados: intervalo 1-6 (ou 1-20 para D20). Deixe 'únicos' desativado para que cada jogada seja independente.

Amostragem aleatória para testes: escolha 10 IDs de usuário aleatórios de 1-10000 para verificação pontual. Use 'únicos' para evitar repetições.

Simulação de lances de moeda: intervalo 0-1, múltiplos resultados. Some cara/coroa para verificações de imparcialidade (você verá ~50/50 em amostras grandes).

Perguntas frequentes

Isso é justo para rifas ou loterias?

A aleatoriedade é criptograficamente segura e imparcial. Se é legalmente 'justo' para uma loteria oficial depende das regras da sua jurisdição — muitas exigem RNGs de hardware certificados.

Qual é a diferença do Math.random()?

Math.random() usa um algoritmo cuja saída pode ser prevista a partir de saídas anteriores por um atacante. crypto.getRandomValues usa um RNG criptográfico em nível de sistema operacional que não pode ser previsto. Para imparcialidade real, use este.

Posso obter números negativos?

Sim. Defina o mínimo como um valor negativo.

Qual é o intervalo máximo?

Limitado pelo intervalo de inteiros seguros do JavaScript (~2⁵³), mas praticamente você pode ir a bilhões sem problemas. A técnica de amostragem por rejeição lida corretamente com qualquer intervalo.

Por que 'únicos' falha quando quantidade > intervalo?

Se você escolher 10 números únicos de 1-5, quatro não existem. A validação detecta isso e pede que você amplie o intervalo ou reduza a contagem.

Funciona para rolagens de dados?

Sim — defina o intervalo como 1-6 (ou qualquer que sejam os seus dados) e desative 'únicos' para que cada rolagem seja independente.

Posso salvar a semente e reproduzir?

Não — random seguro por design não tem semente. Se precisar de 'aleatório' reproduzível para testes, use uma biblioteca PRNG com semente.

Os dados são enviados para algum lugar?

Não. A geração é totalmente local.

Ferramentas relacionadas

Última atualização:

Experimente nossos prompts de IA →