Gerador de número aleatório (sortear número)

Sortear número em qualquer intervalo com resultado justo e sem viés, usando o gerador criptográfico do seu navegador (crypto.getRandomValues()) — com opção de não repetir, casas decimais e ordenação. Nada é enviado para a internet. Última revisão: 2026-06-19.

Atalhos:

Como funciona a aleatoriedade aqui

Cada número sai de crypto.getRandomValues(), a fonte aleatória criptograficamente segura do navegador — a mesma entropia que o seu sistema operacional usa para gerar chaves de criptografia. Ela não pode ser semeada, prevista nem repetida, e é bem diferente do Math.random() que a maioria dos sites usa para sortear número.

Para números inteiros aplicamos amostragem por rejeição (rejection sampling): sorteamos um valor de 32 bits e descartamos qualquer sorteio que caia na pequena faixa “sobrando” que, de outro modo, deixaria alguns números um pouco mais prováveis do que outros. O resultado é uma distribuição uniforme — todo valor do seu intervalo tem exatamente a mesma chance, inclusive quando o intervalo não é uma potência de dois. Esse é justamente o viés que a abordagem ingênua Math.random() × intervalo introduz em silêncio.

Usos mais comuns

UsoConfiguração sugerida
Sorteio / ganhador de promoçãoIntervalo de 1 até o número de participantes, quantos = número de ganhadores, Únicos ligado
Rolar um dado1 a 6 (ou 1 a 20 para jogos de mesa e RPG)
Cara ou coroa0 a 1 (0 = cara, 1 = coroa)
Sorteio no estilo loteria1 a 60, quantos = 6, Únicos ligado
Amostra aleatória sem reposição1 até o tamanho da população, quantos = tamanho da amostra, Únicos ligado
Decimal aleatório (por exemplo 0–1)Mínimo 0, máximo 1, casas decimais 2–4

Bom saber

Como fazer um sorteio justo

Para sortear número de forma defensável em uma promoção, numere os participantes de 1 até N na ordem em que eles entraram (a lista de comentários, a planilha de inscrições, a lista de pedidos). Coloque o mínimo em 1, o máximo em N e informe em quantos a quantidade de ganhadores. Se houver mais de um ganhador, ligue Únicos: assim a mesma pessoa não é sorteada duas vezes. Sortear alguns nomes a mais como suplentes, na mesma rodada, evita ter que refazer o sorteio quando alguém não responde.

Para dar transparência, grave a tela durante o sorteio ou faça a rodada ao vivo com os participantes assistindo: como o resultado nasce no seu aparelho e nada trafega pela rede, não existe demora de servidor entre o clique e o número que aparece. Publicar a lista numerada antes de sortear é o que torna o processo verificável: quem quiser conferir consegue ligar o número sorteado à posição exata da lista. Uma dica prática: não refaça o sorteio porque o resultado “não pareceu aleatório”. Repetir até gostar do resultado é exatamente o que destrói a imparcialidade que a distribuição uniforme garante.

Aleatoriedade verdadeira e pseudoaleatoriedade

Computadores são máquinas determinísticas, então produzir aleatoriedade genuína é surpreendentemente difícil. Há duas abordagens muito diferentes. Um gerador de números verdadeiramente aleatórios (TRNG) mede um fenômeno físico imprevisível — ruído térmico ou ruído de disparo em circuitos, ruído de rádio atmosférico, o intervalo entre decaimentos radioativos, ou efeitos quânticos como fótons atingindo um divisor de feixe — e converte isso em bits. A aleatoriedade vem da natureza, então a saída não pode ser reproduzida nem prevista, mas colher esses bits é comparativamente lento.

Um gerador de números pseudoaleatórios (PRNG) é uma fórmula matemática que parte de um valor inicial chamado semente e produz uma sequência longa que parece aleatória. É rápido e prático, mas totalmente determinístico: quem souber a semente e o algoritmo reproduz exatamente a mesma sequência, e a sequência acaba se repetindo depois de um comprimento conhecido como período. Essa reprodutibilidade às vezes é uma vantagem — permite que cientistas repitam uma simulação de forma idêntica — mas vira uma falha grave quando o que importa é ser imprevisível.

Os sistemas modernos usam um híbrido: uma fonte de entropia em hardware semeia um algoritmo pseudoaleatório rápido e de alta qualidade. É exatamente o que o seu navegador faz. A chamada crypto.getRandomValues() que move esta página busca valores no reservatório de entropia do sistema operacional, que é continuamente reabastecido com ruído de hardware. Por isso os números que ela produz têm a imprevisibilidade de um TRNG com a velocidade de um PRNG — e é por isso que um sorteio feito aqui não depende de você confiar em um servidor.

Os algoritmos por trás dos números pseudoaleatórios

Nem todo PRNG é igual. Décadas de pesquisa produziram famílias de algoritmos com qualidade e velocidade bem diferentes:

AlgoritmoAno / autoriaObservações
Congruencial linear (LCG)a partir dos anos 1950Muito rápido e com estado minúsculo, mas estatisticamente fraco — valores consecutivos caem em hiperplanos detectáveis. Ainda comum em funções rand() básicas.
Mersenne Twister1997, Matsumoto e NishimuraPeríodo enorme, de 219937−1, e boa qualidade estatística; é o padrão em Python, R e em várias linguagens — mas não é criptograficamente seguro.
Xorshift2003, George MarsagliaGeradores extremamente rápidos baseados em deslocamento de bits; passam em testes exigentes quando combinados com uma etapa não linear.
PCG2014, Melissa O'NeillFamília congruencial permutada que junta um núcleo LCG rápido a um embaralhamento na saída — pequena, rápida e estatisticamente excelente.

Um engano comum é achar que o Mersenne Twister, por causa do período astronômico e dos bons resultados em testes, deve ser seguro para uso em segurança. Não é: observando apenas 624 saídas dele, um atacante consegue recuperar o estado interno e prever todos os valores seguintes. Qualidade estatística e segurança criptográfica são requisitos diferentes, e é em torno dessa distinção que esta ferramenta foi construída.

O que torna um gerador "criptograficamente seguro"

Um PRNG criptograficamente seguro (CSPRNG) precisa cumprir uma exigência bem mais dura do que apenas passar em testes estatísticos. Duas propriedades o definem. O teste do próximo bit: dados todos os bits já emitidos, nenhum algoritmo eficiente consegue prever o bit seguinte com chance melhor do que a de um cara ou coroa. E a resistência ao comprometimento do estado: mesmo que o estado interno seja de alguma forma exposto, o atacante ainda não consegue reconstruir os números que já foram gerados antes. Um gerador não criptográfico como o Math.random() do JavaScript falha nos dois — ele foi feito para velocidade em jogos e animações, o estado dele pode ser recuperado a partir da saída, e a especificação nem sequer garante uma qualidade específica de aleatoriedade.

O instituto de padrões dos Estados Unidos (NIST) publica o padrão para desenhos aprovados, NIST SP 800-90A, que especifica geradores determinísticos de bits aleatórios já auditados. A área também guarda um caso famoso de alerta: um algoritmo de uma versão anterior desse padrão, o Dual_EC_DRBG, foi depois apontado como portador de um provável backdoor e acabou retirado — um lembrete de que o desenho de um gerador, e não apenas a saída dele, é o que determina se ele merece confiança. A fonte crypto.getRandomValues() usada aqui é a interface do navegador para o CSPRNG auditado do sistema operacional.

Por que um intervalo justo é mais difícil do que parece

Suponha que você queira um número justo de 1 a 6 e tenha um gerador que devolve um byte aleatório (0–255). O caminho preguiçoso é tirar o resto da divisão: byte % 6 + 1. Só que 256 não é múltiplo de 6. Os valores de 0 a 251 se dividem igualmente em seis baldes de 42, mas os quatro valores que sobram, de 252 a 255, caem nos baldes de 1, 2, 3 e 4 — então esses quatro resultados aparecem um pouco mais vezes do que 5 e 6. Isso é o viés de módulo e, embora o desvio seja minúsculo para um dado, ele cresce com o intervalo e pode importar para chaves criptográficas, loterias grandes ou amostragem científica.

A correção é a amostragem por rejeição: defina o maior múltiplo do seu intervalo que cabe na saída do gerador (no exemplo, 252) e simplesmente descarte — rejeite e sorteie de novo — qualquer valor igual ou acima dele. Todo valor que sobrevive corresponde a exatamente um resultado, então cada resultado tem precisamente a mesma chance. Este gerador aplica essa técnica a um sorteio completo de 32 bits para cada inteiro, e é por isso que os intervalos dele são matematicamente uniformes, em vez de apenas "quase certos".

Por que as pessoas são ruins em ser aleatórias

É tentador simplesmente "pensar em um número", mas gente é um gerador aleatório notavelmente ruim — e é exatamente por isso que uma ferramenta como esta existe. Quando se pede um dígito de 1 a 10, muito mais pessoas escolhem o 7 do que qualquer outro: ele parece o mais "aleatório" porque é ímpar, primo e fica longe das pontas redondas. As pessoas também evitam sem perceber repetir o mesmo valor duas vezes seguidas e tendem a alternar entre escolhas altas e baixas, porque uma sequência real de repetições parece não aleatória, mesmo que a aleatoriedade verdadeira produza sequências assim o tempo todo. O mesmo instinto alimenta a falácia do apostador: a crença equivocada de que, depois de várias caras, uma coroa está "atrasada". Cada sorteio independente não tem memória, então um gerador justo vai produzir tranquilamente agrupamentos e repetições que uma pessoa editando por intuição jamais escreveria. Se você precisa de um resultado que seja defensavelmente imparcial — para uma promoção, uma decisão de amostragem ou um critério de desempate — um sorteio uniforme feito por máquina elimina esse viés humano escondido.

Como a aleatoriedade é testada

Não dá para provar que uma sequência finita é aleatória, mas dá para submeter um gerador a baterias de testes estatísticos que tentam detectar padrões que uma fonte verdadeiramente aleatória não teria. A bateria clássica são os testes Diehard, de George Marsaglia (depois ampliados como Dieharder); a mais exigente entre as modernas é a TestU01, de Pierre L'Ecuyer, cujo conjunto "BigCrush" roda mais de cem testes. O NIST publica a própria Statistical Test Suite, voltada especificamente a geradores usados em criptografia. Por baixo de muitos desses testes está o humilde teste qui-quadrado, que verifica se as frequências observadas (quantas vezes cada valor apareceu) batem com a distribuição uniforme que se esperaria por acaso. Passar nesses testes é necessário mas, como dito acima, não é suficiente para uso criptográfico.

Números aleatórios no mundo real

A geração de números aleatórios sustenta em silêncio uma gama enorme de atividades:

Perguntas frequentes

Este gerador de número aleatório é realmente aleatório?
Ele usa a API crypto.getRandomValues() do seu navegador, que busca valores no gerador de números pseudoaleatórios criptograficamente seguro (CSPRNG) do sistema operacional — a mesma fonte de entropia usada por gerenciadores de senha e pelo TLS. Ao contrário do Math.random(), ele é imprevisível e não aceita semente, então os resultados não podem ser reproduzidos nem adivinhados. Para números inteiros ainda aplicamos amostragem por rejeição, de modo que todo valor do seu intervalo tem exatamente a mesma probabilidade, sem viés de módulo. Na prática, é a mesma qualidade de aleatoriedade que protege chaves de criptografia, colocada a serviço de sortear número.
Posso usar para sortear o ganhador de uma promoção de forma justa?
Sim. Numere cada participante de 1 até N, coloque o intervalo em 1 até N, ligue "Únicos (sem repetir)" se você vai sortear mais de um ganhador e clique em Sortear. Como todos os números do intervalo têm a mesma chance e o sorteio não tem viés, a escolha é justa. Para transparência total, publique a lista numerada antes, grave a tela ou faça o sorteio ao vivo com os participantes: nada é enviado a um servidor, então o resultado é produzido na hora, no seu próprio aparelho.
O que faz a opção "Únicos (sem repetir)"?
Com ela desligada, cada número é sorteado de forma independente, então o mesmo valor pode aparecer mais de uma vez (como jogar o mesmo dado várias vezes). Com ela ligada, todos os números da saída são diferentes entre si — útil para sorteios no estilo loteria, para escolher ganhadores distintos ou para amostragem sem reposição. Se você pedir mais números únicos do que o intervalo comporta (por exemplo, 10 números únicos entre 1 e 5), a quantidade é automaticamente limitada ao tamanho do intervalo.
Alguma coisa sai do meu navegador ou é gravada em algum lugar?
Não. Cada número é gerado localmente, usando o processador do seu aparelho e a entropia do sistema operacional. Nada é enviado, transmitido ou registrado — nem os intervalos que você digita, nem os números sorteados — e a página continua funcionando offline depois de carregada. Também não há limite de uso nem cadastro: você pode sortear número quantas vezes quiser.

Ferramentas relacionadas

Conheça outras ferramentas

Ver todas as 90 ferramentas →