Gente é ruim de ser aleatória. Peça pra cem pessoas escolherem um número "qualquer" entre um e dez — a quantidade de sete vai estourar a curva. Computador faz melhor — quando configurado direito. Seis modos especializados aqui, todos cripto-seguros, nenhum deles Math.random().
Aleatório verdadeiro vs pseudoaleatório — o que a gente usa
Aleatório verdadeiro vem de fontes físicas: ruído atmosférico, ruído térmico em junções de diodos, tempo de chegada de fótons. Hardware. A propriedade definidora é que nenhum algoritmo prevê o próximo bit, nem com poder computacional infinito. Caixa Econômica Federal usa rolagem mecânica de bolas pra Mega-Sena pelo mesmo motivo — a física garante imprevisibilidade.
Pseudoaleatório é um algoritmo determinístico que avança um estado interno e emite uma sequência indistinguível de aleatória — pra quem não sabe o estado. O estado é semeado de algum lugar; se a semente for previsível, a sequência inteira vai junto. Caça-níqueis antigos que semeavam do relógio do sistema foram quebrados exatamente assim: atacante sincroniza com o relógio, prevê o próximo número.
O que usamos aqui é a Web Crypto API: crypto.getRandomValues(), alimentada pelo CSPRNG (PRNG criptograficamente seguro) do sistema operacional. SOs modernos misturam continuamente a piscina de entropia com timing de interrupções, jitter de rede, movimento de mouse, ruído de seek de disco. O resultado é determinístico dado o seed, mas o seed vem de ruído de hardware que você não consegue prever de fora. Pra senha, sorteio, jogo, amostragem estatística — é indistinguível de aleatório verdadeiro.
A exceção neste gerador é o modo sorteio (raffle). Ele usa de propósito um PRNG não-criptográfico, totalmente determinístico (xorshift128, semeado a partir da sua string via SHA-256). O motivo é reprodutibilidade — qualquer pessoa com a mesma lista e a mesma seed precisa chegar nos mesmos vencedores. Explicamos por quê adiante.
Quando usar cada modo
- Inteiro — qualquer coisa de "número da sorte" a "ID aleatório num lote". Intervalo e quantidade configuráveis. Desligue duplicados e vira amostragem sem reposição.
- Decimal — simulações, dados de teste, qualquer lugar que precisa de valor fracionário. Precisão até dez casas decimais.
- Sequência única — loterias (próprias ou não), seleções sem reposição, amostragem estatística. Caso clássico: "seis números de 1 a 60".
- Loteria — cinco presets reais: Mega-Sena (Brasil), Lotofácil (Brasil), Quina (Brasil), Powerball (EUA), EuroMillions (Europa). Até vinte jogos por vez. Entretenimento — veja a próxima seção.
- Sorteio — pegar vencedores de uma lista com trilha de auditoria pública. A killer feature desta ferramenta.
- Normal — amostras gaussianas pra dados mockados, simulação, coortes de teste A/B. Média e desvio padrão configuráveis; histograma aparece quando N ≥ 30.
O modo loteria — suas chances, honestamente
Aviso necessário primeiro: este gerador é entretenimento. Você não compra apostas reais com esses números, e qualquer enquadramento "número da sorte" é pensamento mágico. As probabilidades são fixadas pelo desenho do jogo, e os números que nossa ferramenta imprime têm exatamente a mesma probabilidade de ganhar que qualquer outra combinação válida — inclusive aquela que você rabiscou no guardanapo ou que seu cachorro pisou.
Os números de cabeçalho, todos arredondados:
- Mega-Sena (6 de 60): cerca de 1 em 50.063.860 pra acertar a sena.
- Lotofácil (15 de 25): aproximadamente 1 em 3.268.760 pra cravar os quinze.
- Quina (5 de 80): cerca de 1 em 24.040.016 pra quina.
- Powerball (5 de 69 + 1 de 26): aproximadamente 1 em 292.201.338 pro prêmio principal.
- EuroMillions (5 de 50 + 2 de 12): cerca de 1 em 139.838.160 pro principal.
Pra ter noção: 1 em 292 milhões é mais ou menos a chance de você ser atingido por raio duas vezes no mesmo ano e ganhar um cara-ou-coroa em seguida. Os números deste gerador têm exatamente a mesma chance de ganhar que números escolhidos no aniversário do filho, do cachorro, ou por uma cigana. Nenhum é mais sortudo. Esse é o ponto.
Se a aposta deixou de ser entretenimento e virou problema, conversa com alguém. CVV (188) atende 24h, e jogo patológico tem cuidado clínico estabelecido — não é frescura.
Modo sorteio e o problema da seed
Sorteios online — especialmente em Instagram, TikTok, Twitter — têm um problema de confiança que não dá pra esconder. O organizador recebe inscrições, aperta um botão, anuncia um vencedor. A audiência não tem como verificar que o sorteio não foi viciado depois de ver as inscrições. As pessoas notam. A confiança em sorteios de rede social é baixíssima por isso.
O conserto é duplo:
- O sorteio precisa ser determinístico: mesma lista + mesma seed → mesmo vencedor. Isso torna o resultado reproduzível por qualquer pessoa com as mesmas entradas.
- A seed precisa ser anunciada antes do sorteio, idealmente atrelada a um valor que o organizador não controla. Práticas comuns: hash de bloco futuro do Bitcoin, fechamento cambial do BC do dia X, placar de uma partida específica. A audiência registra a seed, o sorteio roda, qualquer um reproduz.
Nosso modo sorteio resolve a primeira metade automaticamente (xorshift128, semeado via SHA-256 da sua string). A segunda metade depende de você — escolha uma seed que o você-do-futuro não consegue ter manipulado, e anuncie publicamente. O painel imprime a seed ao lado dos vencedores justamente pra que o screenshot que você compartilha já seja a prova.
Distribuição normal, brevemente
A curva em sino. Quase toda medida natural que vem de muitos pequenos efeitos independentes termina normalmente distribuída: altura humana, QI, erros de medição, a soma de mil cara-ou-coroas menos quinhentos. "Normal" é a distribuição que aparece sempre que muitas pequenas contribuições ruidosas se somam — Teorema Central do Limite em ação.
Dois números descrevem ela: a média (centro da curva) e o desvio padrão(quão espalhada). Cerca de 68% das amostras ficam a um desvio padrão da média, 95% a dois desvios, 99,7% a três.
Por baixo do capô usamos a transformação de Box-Muller, publicada por George Box e Mervin Muller em 1958. Duas amostras uniformes entram, duas amostras normais independentes saem, via uma conta com raiz quadrada e trigonometria. É mais velho que a maioria dos algoritmos modernos e ainda ganha em clareza de código.
Erros comuns
- Usar
Math.random()pra segurança. Não.Math.random()em browsers é PRNG não-criptográfico (V8 envia xorshift128+; outras engines variam). Serve pra animação, jogo e dado mockado — não serve pra nada que dependa de imprevisibilidade. Use a Web Crypto API. - Reusar a mesma seed em sorteio de produção sem avisar. Detona o contrato de confiança inteiro. Se quer reprodutibilidade pra teste, varie a seed publicamente.
- Confundir "único" com "aleatório". Amostra única é seleção sem reposição (loteria, sorteio). Sorteios independentes podem repetir. Distribuições diferentes, respostas diferentes.
- Amostras pequenas e histograma. Uma distribuição normal parece ruído até trinta amostras e vira sino real só de cem pra cima. Se o histograma parece estranho, aumente N.

