Gerador de números aleatórios

Gere um número aleatório, uma lista ou vários conjuntos de números em qualquer intervalo — tudo direto no seu navegador, com aleatoriedade criptograficamente segura, nunca em um servidor.

Pressione 'Gerar' para sortear
Opções

Precisa de um jeito rápido e justo de conseguir um número aleatório? Este gerador de números aleatórios gratuito e online sorteia um número — ou uma lista inteira de números — em qualquer intervalo que você escolher, de um simples intervalo de 1 a 10 até intervalos com valores na casa dos bilhões. Defina o valor mínimo e máximo em “Mín” e “Máx”, escolha quantos números você precisa em “Quantidade” e clique em “Gerar”. Os dois limites são incluídos, então um intervalo de 1 a 10 pode retornar tanto 1 quanto 10.

Cada resultado é produzido diretamente no seu navegador usando a Web Crypto API (crypto.getRandomValues) — que fornece valores aleatórios criptograficamente fortes a partir da aleatoriedade do sistema subjacente do seu navegador. Nada é enviado a um servidor, nada é registrado, e nós nunca vemos seus números. A geração é instantânea, privada, e continua funcionando mesmo em uma conexão lenta depois que a página carrega.

As opções foram feitas para as situações em que as pessoas realmente precisam de números aleatórios. Ative “Sem repetições” para que nenhum número apareça duas vezes — exatamente o que você precisa para rifas, sorteios e divisão de pessoas em grupos sem repetição. Precisa de vinte vencedores entre 500 participantes? Defina “Mín” como 1 e “Máx” como 500, ative “Sem repetições”, defina “Quantidade” como 20 e clique em “Gerar”. “Ordem de classificação” organiza o resultado em ordem crescente ou decrescente, e um botão copia todos os resultados. Ao mudar o “Formato de saída” de “Quebra de linha” para “Separado por espaços” ou “Separado por vírgulas”, aparece “Número de conjuntos”: vários sorteios independentes de uma vez — por exemplo, vinte conjuntos de 3 números para vinte rodadas de sorteio — com “Permitir duplicatas entre conjuntos” decidindo se o mesmo número pode aparecer em mais de um deles.

Como a aleatoriedade é realmente gerada? Seu navegador fornece valores aleatórios criptograficamente fortes através da Web Crypto API, em vez de um PRNG em JavaScript como o Math.random(). Ao clicar em “Gerar”, a página solicita valores aleatórios com crypto.getRandomValues e os usa para produzir números dentro do intervalo escolhido. A fonte subjacente de aleatoriedade vem do navegador e do sistema operacional, então a página não precisa manter sua própria semente fixa ou sequência pseudoaleatória.

Converter um valor bruto para o seu intervalo é exatamente onde os geradores erram silenciosamente, e isso merece um parágrafo só seu. Pegar o valor módulo o tamanho do intervalo é o método óbvio — e o enviesado: a menos que o intervalo divida 2^32 de forma exata, os números mais baixos aparecem um pouco mais que os demais. Essa falha é chamada de modulo bias, e ela é mensurável, não apenas teórica. Este gerador, em vez disso, descarta qualquer valor além do maior múltiplo exato do intervalo e sorteia de novo — uma técnica chamada rejection sampling. Isso custa alguns sorteios extras, mas garante que cada número entre “Mín” e “Máx” tenha exatamente a mesma probabilidade, não apenas quase a mesma.

O que torna um número verdadeiramente aleatório? Um número é aleatório o suficiente quando os resultados anteriores não revelam nada sobre o próximo — e, na prática, existem três níveis disso. Uma função pseudoaleatória comum, como o Math.random(), roda um algoritmo determinístico: quem conhece seu estado interno consegue reproduzir toda a sequência, o que é ótimo para embaralhar uma apresentação de slides, mas inadequado para qualquer coisa em que o resultado não possa ser previsível. Um gerador criptograficamente seguro (CSPRNG) — o nível que esta ferramenta usa — também é um algoritmo, mas é projetado para produzir valores imprevisíveis a partir de uma fonte segura de aleatoriedade do sistema, e construído de forma que observar sua saída não revele nada sobre o que vem a seguir. A aleatoriedade física, de fontes como o ruído atmosférico ou o decaimento radioativo, é diferente das duas, embora a diferença prática desapareça quando se trata de sortear um número dentro de um intervalo. É exatamente por isso que os navegadores oferecem uma API de criptografia separada em vez de simplesmente melhorar o Math.random(): as duas resolvem problemas diferentes, e só uma delas é segura quando o resultado importa para alguém.

Uma sequência aleatória não precisa parecer aleatória para os humanos. Sorteie dez números entre 1 e 10 e você regularmente verá uma repetição, uma quase repetição como 7, 7, 8, ou uma sequência curta que cai toda em números altos — e cada uma dessas situações é perfeitamente normal. A aleatoriedade verdadeira é imprevisível, não uniformemente distribuída: cada sorteio é independente, números anteriores não têm absolutamente nenhuma influência sobre os seguintes, e nenhum número jamais fica “devendo” uma aparição. O instinto que insiste no contrário é a falácia do jogador, e é o mesmo instinto que faz das pessoas geradores de números aleatórios ruins — quando pedem para inventarmos uma sequência aleatória, evitamos repetições e distribuímos os valores de forma muito mais uniforme do que o acaso jamais faria. Um resultado que parece suspeitosamente arrumado é a marca de um ser humano; a aleatoriedade genuína produz aglomerados.

Por que escolher este gerador de números aleatórios?

Números aleatórios aparecem em mais lugares do que a maioria imagina. Professores chamam alunos sem favorecer ninguém. Streamers e profissionais de marketing sorteiam vencedores de giveaways e rifas na frente de um público que precisa acreditar no resultado. Jogadores substituem um dado perdido ou decidem quem começa, e torneios sorteiam a ordem de largada. Pesquisadores escolhem uma amostra aleatória para que suas descobertas se generalizem além das pessoas que participaram. Desenvolvedores geram dados de teste, inicializam simulações e escolhem identificadores durante o QA. O fio condutor é um processo de seleção aleatória que pode ser explicado depois: como o sorteio usa aleatoriedade criptográfica e acontece inteiramente no seu dispositivo, você pode mostrar como o resultado foi gerado se alguém questionar.

Este gerador tem algumas limitações honestas que vale a pena conhecer. O modo “Sem repetições” não consegue sortear mais números do que o intervalo contém: vinte valores únicos entre 1 e 10 simplesmente não existem. Os sorteios são independentes, e resultados anteriores não afetam os seguintes, então recarregar a página não reinicia nenhum ciclo — não existe ciclo nenhum para se estar dentro. E, embora os números sejam criptograficamente fortes, um sorteio aqui é uma escolha justa, não uma previsão: os sorteios oficiais de loteria usam seus próprios equipamentos físicos ou certificados, e nada calculado no seu navegador tem qualquer conexão com eles. Dentro desses limites, a garantia é ainda mais forte: cada número do seu intervalo tem exatamente a mesma chance, em cada sorteio.

FAQ

A aleatoriedade é criptograficamente segura?

Sim. Ela usa a Web Crypto API do seu navegador (crypto.getRandomValues), que obtém aleatoriedade da fonte criptograficamente segura do seu sistema operacional. Diferente de funções pseudoaleatórias simples, sua saída é projetada para ser imprevisível na prática, e o rejection sampling mantém cada número do intervalo igualmente provável, em vez de favorecer os valores mais baixos.

Como gero um número aleatório em um intervalo específico?

Digite o menor valor possível no campo “Mín” e o maior no campo “Máx”, depois clique em “Gerar”. Os dois limites são incluídos no resultado, então um intervalo de 1 a 10 pode gerar tanto 1 quanto 10.

Posso gerar vários números aleatórios de uma vez?

Sim. Defina o campo “Quantidade” com a quantidade que você precisa (até 1000), e o gerador produz a lista inteira com um clique. Depois você pode copiar todos os resultados para a área de transferência com o botão de copiar, ou salvá-los em um arquivo.

Posso gerar vários conjuntos de números de uma vez?

Sim. Mude o “Formato de saída” de “Quebra de linha” para “Separado por espaços” ou “Separado por vírgulas” para revelar o campo “Número de conjuntos”. Defina quantos sorteios independentes você precisa — por exemplo, vinte conjuntos de 3 números para vinte rodadas de sorteio — e escolha se as repetições podem ocorrer entre conjuntos diferentes.

Posso ordenar os números gerados?

Sim. Use a opção “Ordem de classificação” para organizar cada lista em ordem crescente ou decrescente, ou deixe em “Nenhum” para manter os números na ordem em que foram sorteados.

Como evito números repetidos?

Ative o interruptor “Sem repetições”. Com ele ativado, cada número gerado na lista é diferente — ideal para rifas, sorteios de prêmios ou divisão de pessoas em grupos. Observe que a quantidade não pode ultrapassar o tamanho do intervalo: você não pode sortear 20 números únicos entre 1 e 10.

Por que os mesmos números continuam se repetindo?

Porque sorteios independentes se repetem, e é exatamente assim que a aleatoriedade se comporta. Cada sorteio ignora completamente todos os sorteios anteriores, então em um intervalo de 1 a 10, a chance de o mesmo número sair duas vezes seguidas é de 1 em 10 — sempre, todas as vezes —, o que é comum, não um defeito. Se você precisa de uma lista sem repetições, ative “Sem repetições”; isso limita o sorteio de propósito, não corrige nenhum erro.

Por que uma sequência aleatória não parece aleatória?

Porque a aleatoriedade verdadeira é imprevisível, não uniformemente distribuída. As pessoas esperam que um resultado aleatório se espalhe de forma organizada, então aglomerados, repetições e sequências curtas como 7, 7, 8 parecem erros, mesmo sendo exatamente o que o acaso produz. Uma sequência que parece organizada para um ser humano geralmente não foi aleatória.

Posso confiar na aleatoriedade gerada em um navegador?

Sim, quando ela vem da Web Crypto API, como é o caso aqui. O crypto.getRandomValues fornece valores aleatórios criptograficamente fortes a partir da aleatoriedade do sistema subjacente do navegador e do sistema operacional, em vez de usar um PRNG JavaScript como o Math.random(). É o Math.random() que você deve evitar quando algo realmente importa: ele é determinístico e nunca foi projetado para ser imprevisível.

Números aleatórios podem ser previstos ou influenciados?

Não aqui. Os valores vêm do gerador criptograficamente seguro do seu sistema operacional, então resultados anteriores não revelam nada sobre o próximo, e o sorteio acontece inteiramente no seu dispositivo — não há servidor para adulterar nem requisição para alguém interceptar. Também não podemos influenciar seus resultados, porque nunca os vemos.

É adequado para escolher vencedores de giveaways ou rifas?

Sim. Atribua um número a cada participante, gere um resultado nesse intervalo, e o participante correspondente vence. Como a fonte é criptograficamente segura e o sorteio acontece inteiramente no seu dispositivo, o processo é fácil de explicar e documentar se um participante questionar o resultado. Se você for escolher números para um bilhete de loteria, a ferramenta funciona como um recurso de seleção aleatória, não como uma previsão: os sorteios oficiais são completamente independentes disso.

Recarregar a página muda a aleatoriedade?

Não, e nem precisa. Cada sorteio já pede valores aleatórios novos ao sistema operacional, então os resultados são independentes, seja clicando em “Gerar” dez vezes ou recarregando entre cada clique. Não existe ciclo para reiniciar nem estado que fique desatualizado — recarregar só limpa os resultados exibidos na tela.

O gerador é gratuito, e vocês guardam meus números?

A ferramenta é totalmente gratuita e não exige cadastro. Todos os números são gerados localmente no seu navegador e nunca saem do seu dispositivo, então não poderíamos guardar ou ver seus resultados mesmo se quiséssemos.