Gerador de Números Aleatórios

Gerador de números aleatórios online e gratuito. Escolha um número entre qualquer mín e máx, gere um único ou uma lista, com passo e delimitador personalizáveis.

Como os números aleatórios são gerados?

Existem duas famílias: números aleatórios verdadeiros e pseudoaleatórios. A diferença importa mais do que a maioria das pessoas percebe.

Aleatoriedade verdadeira vem de processos físicos que não dá para prever nem em princípio — tempo de decaimento radioativo, ruído atmosférico capturado por um microfone, ruído térmico dentro de osciladores em anel da CPU. A aleatoriedade é fundamental, não apenas opaca. Geradores de números aleatórios em hardware nos chips modernos (RDRAND da Intel e da AMD, TrustZone da ARM) alimentam entropia direto dessas fontes.

Pseudoaleatoriedade vem de algoritmos determinísticos — Mersenne Twister, xorshift, PCG, ChaCha20. Dada a mesma semente (seed), sempre produzem a mesma sequência. São extremamente rápidos e têm excelentes propriedades estatísticas (passam testes como Diehard e TestU01), mas não são imprevisíveis para quem conhece o algoritmo e a semente. O crypto.getRandomValues do navegador mistura a saída pseudoaleatória com entropia do sistema operacional e re-semeia com frequência, e por isso é considerado criptograficamente forte mesmo sendo tecnicamente um PRNG.

Por que a diferença importa?

Criptografia: chaves de cifra, tokens de sessão e handshakes TLS precisam ser imprevisíveis. Uma falha na fonte aleatória pode quebrar todo o sistema — veja o bug do OpenSSL no Debian em 2008, que deixou cerca de 250 mil chaves SSH adivinháveis.

Justiça: em jogos, apostas e loterias, a aleatoriedade previsível é explorável. RNGs certificados (os de cassinos regulados) exigem força criptográfica e trilha de auditoria.

Simulação: métodos de Monte Carlo em física, finanças e aprendizado de máquina rodam sobre volumes enormes de números aleatórios. Velocidade aqui pesa mais que força criptográfica — a maioria dos pesquisadores usa Mersenne Twister ou PCG, com semente fixa para reproduzir resultados.

Tokens de segurança: links de redefinição de senha, chaves de API e segredos 2FA precisam ser imprevisíveis. Um gerador fraco aqui falha em silêncio — nada quebra visivelmente, mas o atacante adivinha o token.

Amostragem: em pesquisas e estatística, todo membro da população precisa ter a mesma probabilidade de ser escolhido. Um gerador enviesado produz dados enviesados, e o viés muitas vezes só aparece quando a conclusão já saiu errada.

Sobre o Gerador de Números Aleatórios

Escolha um número entre qualquer mínimo e máximo — ou gere uma lista inteira de uma vez. Este gerador usa a fonte de aleatoriedade criptograficamente forte do navegador (crypto.getRandomValues — a mesma primitiva que produz chaves de sessão TLS) em vez do velho Math.random, rápido mas previsível o bastante para um atacante determinado reconstruir o estado interno após observar algumas saídas. Para sorteios do dia a dia — "quem começa", "qual restaurante hoje", uma rifa no escritório — Math.random basta. Para qualquer cenário em que prever importe, a fonte criptográfica é a opção certa.

O parâmetro de passo (step) controla o espaçamento entre valores permitidos. Passo 1 no intervalo 1-10 dá os inteiros 1, 2, 3, ..., 10. Passo 0.5 no mesmo intervalo dá 1, 1.5, 2, 2.5, ..., 10. Passo 2 no intervalo 0-20 dá os pares. Definir o tamanho da lista acima de 1 muda do modo único para o modo lote e junta os resultados com o delimitador escolhido — útil quando você precisa de dados-amostra rapidamente para testes.

Perguntas Frequentes

Sim — ele puxa de crypto.getRandomValues, que a Web Crypto API do W3C define como criptograficamente forte. Na prática o navegador delega para o pool de entropia do sistema operacional (/dev/urandom no Linux/macOS, BCryptGenRandom no Windows), a mesma fonte usada por bibliotecas TLS e geradores de chave SSH. Ressalva: "serve para cripto" significa que a fonte de entropia é boa; se o caso de uso é seguro depende também de como você lida com a saída. Gerar uma chave de 256 bits aqui e colar num chat público derrota a ideia na hora. Para uso local pontual (uma senha forte, um token de sessão no seu próprio app), a qualidade de aleatoriedade equivale à de uma biblioteca cripto profissional.

Não a partir desta ferramenta — crypto.getRandomValues é intencionalmente não-semeável, justamente para que saídas não possam ser repetidas. Se você precisa de aleatoriedade reproduzível (simulação estatística, debug, trabalho científico), use um PRNG com semente. Em JavaScript, instale mulberry32 ou um pequeno gerador com semente semelhante e passe uma semente fixa; mesma semente, mesma sequência. Trade-off: uma sequência com semente é reproduzível mas quem descobre a semente consegue repetir — não use PRNG com semente para segurança.

Com segurança até 2^53 - 1, ou cerca de 9,007 quatrilhões (9.007.199.254.740.991). É o Number.MAX_SAFE_INTEGER do JavaScript — o limite superior dos inteiros representáveis com exatidão em um ponto-flutuante de 64 bits sem arredondamento. Acima disso, inteiros começam a perder precisão (a distância entre números representáveis ultrapassa 1). Para a maioria dos usos — dados, loteria, porcentagens, valores financeiros — esse teto é irrelevante; só importa para gerar IDs muito grandes ou nonces criptográficos, casos em que de qualquer forma você usaria outra ferramenta (baseada em BigInt ou saída em hex).

Coloque mín em 0, máx em 1 e passo numa fração pequena, tipo 0.01 ou 0.001 conforme a precisão necessária. Passo 0.01 dá duas casas decimais (0.00 a 1.00). Passo 0.001 dá três. Se você quer saída contínua uniforme (qualquer real em [0, 1)), a primitiva por baixo é Math.random — e nesse caso específico chamar Math.random() no console costuma ser mais rápido que ir pela ferramenta. Para decimais com peso ou não-uniformes (gaussianos, exponenciais), você precisa de uma ferramenta especializada — este gerador é uniforme dentro do intervalo pedido.

Sim — por padrão cada número é gerado de forma independente, então duplicatas não só são possíveis como prováveis. Com intervalo 1-10 e lista de 10, quase sempre aparecem repetições e faltam alguns valores (é o "problema do aniversário" em ação). Se você precisa de uma amostra única — por exemplo, sortear 10 números distintos de 1-100 — o que você quer mesmo é amostragem sem reposição, que esta ferramenta não impõe. Macete: gere mais números do que precisa (digamos 30 de 1-100), depois deduplique e pegue os primeiros N. Para embaralhar ou sortear únicos, uma ferramenta de shuffle ou permutação é o formato certo.

Math.random() é feito para velocidade e correção estatística, não para imprevisibilidade. Historicamente, navegadores diferentes usaram algoritmos diferentes — o V8 (Chrome, Node) usa xorshift128+, o SpiderMonkey (Firefox) usa xorshift; todos rápidos mas com estado interno pequeno (~128 bits). Pesquisadores mostraram que observar algumas centenas de saídas consecutivas é o suficiente para reconstruir o estado interno e prever todos os valores futuros. Para jogos, animações e embaralhar um baralho numa experiência offline single-player, Math.random() está ok. Para qualquer coisa multiplayer, com pegada de jogo de azar, ou ligada a segurança, crypto.getRandomValues é o certo — e é o que este gerador usa.

O gerador produz valores no formato mín + k × passo, com k inteiro não-negativo, recortado em ≤ máx. Logo, intervalo 1-10 com passo 3 produz o conjunto {1, 4, 7, 10}, não inteiros arbitrários entre 1 e 10. Intervalo 0-1 com passo 0.1 dá {0, 0.1, 0.2, ..., 1.0}. Se o passo não divide (máx - mín), o maior valor alcançável fica logo abaixo do máx — por exemplo 0-10 passo 3 dá {0, 3, 6, 9} (10 só é alcançável se for igual a mín + k × passo para algum k). Use passo 1 para dados inteiros normais.

Não. A geração acontece inteiramente no navegador — mín, máx, passo e os números resultantes nunca saem da página. A gente não loga, não rastreia em analytics, não transmite nada. A única atividade de rede desta página é carregar os próprios assets (HTML, CSS, JS). Abra a aba Rede do navegador antes de clicar em Gerar; verá zero requisições. É por isso que a ferramenta é adequada para uso criptográfico — uma chave gerada só vazaria se você mesmo copiasse e colasse em um lugar inseguro.
Gerador de Números Aleatórios — Gerador de números aleatórios online e gratuito. Escolha um número entre qualquer mín e máx, gere um único ou uma lista,
Gerador de Números Aleatórios