Agradeceria se você compartilhasse estas páginas com amigos, as salvasse nos favoritos ou as linkasse. Obrigado! 🙏

Gerador de Números Aleatórios Online

Acrafto Team Matemática
Atualizado
Predefinições rápidas
Tudo corre no seu navegador. Nenhum número sai do seu dispositivo.

Como funciona o Gerador de Números Aleatórios?

O gerador oferece duas fontes de aleatoriedade, e você escolhe qual se encaixa na tarefa.

Aleatório seguro extrai entropia do seu sistema operacional através da Web Crypto API (crypto.getRandomValues()). É imprevisível e irrepetível — a escolha certa para um sorteio real, em que ninguém deve conseguir adivinhar o resultado com antecedência.

Com semente transforma qualquer texto digitado em um estado inicial para um gerador determinístico (xoshiro128**). A mesma semente sempre produz os mesmos números, para que qualquer pessoa possa reproduzir seu sorteio e confirmar que você obteve o que diz ter obtido.

Ambos rodam inteiramente no seu navegador. Nenhum número chega a um servidor.

Sem viés de módulo

A maioria dos geradores simples mapeia um valor aleatório de 32 bits no seu intervalo com value % range. Quando o intervalo não divide 2³² de forma exata, os números mais baixos aparecem um pouco mais que os demais. Ao longo de milhares de sorteios, isso é mensurável.

Este gerador usa amostragem por rejeição: valores que cairiam na cauda desigual são descartados e sorteados novamente. Cada número do seu intervalo tem exatamente a mesma chance. Você mesmo pode verificar isso com o teste de uniformidade integrado.

O que o gerador pode fazer

Intervalo

  • Mínimo e máximo — qualquer intervalo inteiro ou decimal, incluindo valores negativos
  • Quantos números — de 1 até 1.000.000 em um único sorteio
  • Sem repetição — cada número aparece no máximo uma vez, como em um sorteio real
  • Ordenação — ordem de sorteio, crescente ou decrescente; a ordenação nunca interfere na aleatoriedade
  • Passo — restringe os resultados a múltiplos de um valor, para que apareçam apenas 0, 5, 10, 15
  • Excluir números — liste valores que nunca devem ser sorteados

Modo

  • Fonte de aleatoriedade — segura (Web Crypto) ou com semente (reproduzível)
  • Semente — qualquer texto; a mesma semente sempre reproduz o mesmo sorteio
  • Distribuição — uniforme, normal (gaussiana), exponencial, Poisson, triangular, binomial
  • Pesos — dê a números escolhidos uma chance maior, escritos como number:weight
  • Notação de dados3d6+2, d20, 2d20kh1 para vantagem, 4d6dl1 para gerar atributos

Saída

  • Separador — vírgula, espaço, ponto e vírgula, tabulação, nova linha, ou qualquer texto digitado
  • Sistema numérico — decimal, binário, octal, hexadecimal ou base 36
  • Preenchimento com zeros — transforme 7 em 007 para números de bilhete ou ID
  • Prefixo e sufixo — envolva cada número em texto fixo
  • Modelo{n} é o número, {i} é sua posição, então user{n} vira user42
  • Copiar como — texto simples, CSV, JSON ou uma tabela Markdown

Estatísticas

Cada sorteio é resumido em tempo real: soma, média, mediana, menor, maior, desvio padrão, além de quantos resultados são pares, ímpares ou primos. Um histograma mostra o formato da distribuição, e um teste qui-quadrado indica se os resultados realmente correspondem a uma distribuição uniforme.

Histórico

Os últimos 50 sorteios ficam guardados no seu navegador, com as configurações que os geraram — um clique restaura qualquer um deles. Configurações usadas com frequência podem ser salvas como predefinições nomeadas, e tudo pode ser exportado para um arquivo JSON que você importa em outra máquina. Nada é armazenado em nenhum outro lugar além deste navegador.

Teclado

Pressione Espaço ou R para sortear novamente sem precisar do mouse.

Predefinições rápidas

PredefiniçãoIntervaloQtd.Uso
🎲 Dado1–61Jogos de tabuleiro, decisões
🪙 Moeda0–11Cara ou coroa
🎰 Loteria1–496Únicos, ordenados, como um sorteio real
💯 1–1001–1001Porcentagens, divisões A/B
🔢 PIN0–94Quatro dígitos, repetição permitida

Sorteios reproduzíveis

O modo com semente existe para os momentos em que “confie em mim, foi aleatório” não é suficiente.

Escolha uma semente que todos possam combinar com antecedência — uma data, uma hashtag, o preço de fechamento de algo público — e anuncie-a antes do sorteio. Qualquer pessoa pode então digitar a mesma semente com as mesmas configurações e obter o resultado idêntico. Você não provou que os números eram imprevisíveis; provou que não repetiu o sorteio até gostar da resposta.

É também assim que se torna a aleatoriedade repetível em trabalhos que precisam ser verificados: um plano de amostragem que um colega pode reexecutar, um conjunto de fixtures de teste que permanece estável em uma suíte de testes, um exercício em sala de aula em que todos os alunos recebem os mesmos dados “aleatórios”.

Escolhendo uma distribuição

Uniforme dá a cada número do intervalo a mesma chance. É o que as pessoas geralmente entendem por aleatório, e é o padrão.

As outras concentram os resultados em torno de um valor, que é o que as grandezas do mundo real costumam fazer:

  • Normal (gaussiana) — alturas, erros de medição, notas de testes. Defina uma média e um desvio padrão.
  • Exponencial — tempos de espera entre eventos independentes.
  • Poisson — contagens de eventos em um intervalo fixo: chegadas por hora, defeitos por lote.
  • Triangular — quando você conhece o mínimo, o máximo e o valor mais provável, mas nada além disso. Comum em estimativas de projeto.
  • Binomial — sucessos em um número fixo de tentativas com uma probabilidade fixa.

Toda distribuição é limitada ao intervalo definido, então uma cauda gaussiana longa não consegue escapar do seu mínimo e máximo.

Onde os números aleatórios são usados

Jogos e entretenimento

  • Jogos de tabuleiro — rolagens de dados, ordem de turno
  • RPGs de mesa4d6dl1 para atributos, 2d20kh1 para vantagem
  • Sorteios/brindes — escolher um vencedor, com uma semente para que os participantes possam verificar
  • Quizzes — ordem aleatória das perguntas

Estatística e ciência

  • Amostragem — extração de uma amostra da população sem repetição
  • Testes A/B — atribuição de participantes a grupos
  • Simulação de Monte Carlo — estimativa de probabilidade por repetição
  • Bootstrapping — reamostragem para estimar incerteza

Desenvolvimento

  • Dados de teste — um milhão de valores, gerados em segundo plano para a página continuar responsiva
  • Fixtures — com semente, para que um teste que falha, falhe da mesma forma duas vezes
  • IDs aleatórios — com preenchimento, prefixos ou um modelo
  • Testes de carga — identificadores baseados em modelo como user{n}@example.com

Números verdadeiramente aleatórios vs. pseudoaleatórios

Math.random()crypto.getRandomValues()Com semente (xoshiro128**)
TipoPseudoaleatórioCriptograficamente seguroPseudoaleatório, determinístico
Fonte de entropiaSemente escolhida pelo motorCSPRNG do sistemaSeu texto de semente
Previsível?PotencialmenteNãoSim, por design
Repetível?NãoNãoSempre
Bom para segurançaNãoSimNão
Bom para estatísticaDependeSimSim
Bom para sorteios verificáveisNãoNãoSim

Math.random() não é usado em nenhuma parte desta ferramenta.

Sorteios sem repetição

Com Sem repetição ativado, cada número do intervalo aparece no máximo uma vez. Ideal para:

  • Sorteios — ninguém pode ganhar duas vezes
  • Permutações — embaralhar um conjunto de itens
  • Bingo — chamar números que permanecem chamados
  • Loteria — seis números distintos de 1 a 49

O sorteio usa um embaralhamento parcial de Fisher–Yates, então pedir 6 números de um milhão é tão rápido quanto pedir 6 de 49 — ele nunca fica em loop tentando evitar uma colisão. Se você pedir mais números únicos do que o intervalo pode fornecer, o gerador avisa em vez de travar.

Exportando resultados

Copie os números como texto simples com qualquer separador que preferir, como CSV para uma planilha, como JSON para código, ou como uma tabela Markdown para documentação. Sorteios muito grandes permanecem inteiros na memória e são copiados por completo, mesmo que apenas os primeiros milhares sejam exibidos na tela.

Gerando números aleatórios no seu próprio código

JavaScript / TypeScript

// Inteiro criptograficamente seguro em [min, max], sem viés de módulo.
// O ingênuo `value % range` favorece números baixos quando o intervalo
// não divide 2**32 de forma exata - por isso rejeitamos valores na cauda desigual.
function randomInt(min, max) {
  const range = max - min + 1;
  const limit = Math.floor(0x100000000 / range) * range;
  const arr = new Uint32Array(1);
  let value;
  do {
    crypto.getRandomValues(arr);
    value = arr[0];
  } while (value >= limit);
  return min + (value % range);
}

Python

import random
import secrets

# Criptograficamente seguro, sem viés de módulo
n = secrets.randbelow(max - min + 1) + min

# Reproduzível: a mesma semente sempre gera a mesma sequência
rng = random.Random('my-seed')
n = rng.randint(min, max)

# Sem repetição
sample = random.sample(range(min, max + 1), count)

PHP

// Criptograficamente seguro (PHP 7+), sem viés de módulo
$n = random_int($min, $max);

// Reproduzível
mt_srand(crc32('my-seed'));
$n = mt_rand($min, $max);

Perguntas Frequentes (FAQ)

É o resultado verdadeiramente aleatório? No modo seguro, sim. Ele vem de crypto.getRandomValues(), um gerador criptograficamente seguro alimentado pelo pool de entropia do seu sistema operacional. Os resultados são uniformemente distribuídos e imprevisíveis. O modo com semente é deliberadamente o oposto: é reproduzível, que é justamente o objetivo.
Quantos números posso gerar de uma vez? Até 1.000.000. Sorteios acima de 50.000 são calculados em um worker em segundo plano para a página continuar responsiva, e a tela mostra os primeiros 2.000 com uma contagem do restante — copiar ainda assim entrega tudo.
Posso gerar números negativos? Sim. Defina um mínimo negativo. Todo o intervalo de números do JavaScript funciona, incluindo intervalos negativos em ambas as extremidades.
A ordenação afeta a aleatoriedade? Não. Os números são sorteados primeiro e ordenados depois. A ordenação muda apenas a ordem em que você os vê.
A mesma semente vai gerar os mesmos números amanhã? Sim, e em qualquer outro dispositivo ou navegador. O gerador com semente é totalmente determinístico e depende apenas da sua semente e configurações.
O que o teste de uniformidade me diz? Ele executa um teste qui-quadrado comparando com que frequência cada número realmente saiu contra a frequência esperada. Se a estatística permanecer abaixo do valor crítico, os resultados são consistentes com uma distribuição uniforme. É preciso um intervalo razoavelmente estreito e sorteios suficientes — pelo menos cinco por valor possível — para dizer algo significativo.
Como funcionam os pesos? Escreva-os como pares number:weight, por exemplo 1:5, 2:1, 3:1. Aqui, 1 tem cinco vezes mais chance que 2 ou 3. Números não listados recebem peso zero e nunca são sorteados.
Qual notação de dados é suportada? 3d6 rola três dados de seis lados. Adicione um modificador com 3d6+2. Mantenha ou descarte dados com kh, kl, dh, dl — assim, 2d20kh1 mantém o maior de dois d20 (vantagem) e 4d6dl1 descarta o menor de quatro d6.
Meu histórico é armazenado em algum lugar? Somente neste navegador, no local storage. Nunca chega a um servidor, nunca sincroniza com outro dispositivo, e desaparece se você limpar os dados do site. Exporte para JSON se quiser mantê-lo ou movê-lo.