“Dá para confiar, é aleatório” é uma afirmação, não um fato. Para uma seleção ser justa, duas coisas precisam ser verdadeiras: a fonte dos números não pode ser previsível, e cada opção precisa ter a mesma probabilidade.
As duas coisas são implementáveis, as duas costumam sair erradas, e elas falham de forma independente. Uma ferramenta pode ter uma fonte aleatória excelente e um mapeamento enviesado, ou um mapeamento perfeitamente uniforme alimentado por números previsíveis.
De Onde Vem a Aleatoriedade
A aleatoriedade genuína vem de processos físicos que não são determinados pelo estado anterior:
- Decaimento radioativo — o instante em que um átomo decai não pode ser previsto
- Ruído térmico — flutuações aleatórias de tensão em um resistor
- Ruído atmosférico — o chiado de fundo da atividade de raios
- Medição quântica — resultados genuinamente indeterminados
Um computador não consegue observar nada disso diretamente. O que ele faz é amostrar um gerador de hardware — /dev/urandom e equivalentes — que por sua vez é semeado a partir de processos físicos. Esse é um gerador de números verdadeiramente aleatórios.
O caso muito mais comum é o gerador pseudoaleatório: um algoritmo determinístico que produz uma sequência que apenas parece aleatória.
next = (previous × multiplier + increment) mod modulus
A propriedade crítica não é sutil. Se você conhece o algoritmo e a semente, consegue calcular todo valor que a sequência vai produzir. Não aproximadamente — exatamente. É por isso que Math.random(), usado pela maioria dos sites, não serve para nada que importe: a saída é determinada pelo estado interno, e recuperar esse estado a partir das saídas observadas torna todo resultado futuro previsível.
O Meio-Termo que Decide a Questão
As plataformas modernas não usam entropia de hardware bruta a cada chamada. Elas usam um PRNG criptograficamente seguro — determinístico, mas semeado a partir de entropia de hardware e projetado de modo que observar as saídas não revele o estado.
| TRNG de hardware | CSPRNG | PRNG comum | |
|---|---|---|---|
| Baseado em entropia física | Sim | Sim | Não |
| Determinístico dado o estado | Não | Sim | Sim |
| A saída revela o estado | Não | Não | Sim |
| Adequado para um sorteio de prêmios | Sim | Sim | Não |
Um CSPRNG é determinístico exatamente no mesmo sentido em que todo software que você usa é determinístico. O que o torna aceitável é que seu estado não é recuperável a partir do que ele já emitiu.
Os navegadores expõem isso por meio de crypto.getRandomValues(). É a fonte que os sorteios daqui usam.
Uniformidade é um Problema Separado
Ter uma boa fonte não basta. O mapeamento de um número aleatório para uma escolha ainda pode ser enviesado, e é esse o erro que a maioria das ferramentas comete.

A abordagem ingênua — escalar um número de ponto flutuante de 0 a 1 para o intervalo — enviesa a extremidade inferior. Com 40 nomes, alguns valores aleatórios caem além do fim do último bloco e, se forem truncados em vez de descartados, o primeiro nome aparece um pouco mais vezes que o último.
O viés é pequeno demais para alguém notar, e é justamente por isso que ele sobrevive na maioria das implementações.
A abordagem correta é a amostragem por rejeição: sorteie e, se o resultado cair no bloco final incompleto, descarte e sorteie de novo. A distribuição fica exatamente uniforme, então cada entrada tem chance de 1/N — inclusive em um sorteio de 40 nomes, em que uma implementação de ponto flutuante escalado daria ao primeiro nome uma probabilidade um pouco maior.
A mesma técnica aparece no gerador de IDs curtos daqui, em que a taxa de aceitação é 252/256 e o viés resultante é de cerca de duas partes em dez milhões. Pequeno o bastante para ser irrelevante, e pequeno o bastante para que uma implementação descuidada passasse despercebida — e é exatamente por isso que vale a pena medir.
Três Falhas Humanas que Não São da Ferramenta
Falácia do apostador. Depois de cinco caras seguidas, dá a sensação de que coroa está atrasada. Cada sorteio é independente. A moeda não tem memória de ter sido injusta, e a probabilidade correta depois de cinco caras continua sendo exatamente 1/6 por face.
Ilusão de agrupamento. Sequências em dados aleatórios parecem padronizadas porque você está procurando por elas. Três resultados idênticos seguidos acontecem muito mais vezes do que a intuição sugere. E dados realmente aleatórios parecem irregulares em trechos curtos — uma sequência que parece perfeitamente uniforme tem mais chance de ser fabricada do que de ser genuína.
Paradoxo do aniversário. Em um grupo de 23 pessoas, é provável que duas façam aniversário no mesmo dia. Isso é aritmética, não psicologia, mas ilustra por que as pessoas são tão ruins em estimar aleatoriedade: as probabilidades individuais são minúsculas e se multiplicam.
O ponto em comum é que uma única observação não prova nada, em nenhuma direção. Um sorteio que pareceu estranho é tão pouco informativo quanto um que pareceu certinho.
As Duas Falhas que Mais Importam na Prática
Depois de percorrer o mecanismo, vale nomear o que de fato dá errado quando uma seleção é contestada — e nenhuma dessas falhas tem a ver com a fonte.
O operador alterou o resultado. Sortear de novo, corrigir à mão, pular um nome ausente no meio do sorteio. Um gerador perfeito com um resultado modificado continua sendo um resultado modificado, e isso é visível para quem assistiu.
O grupo não era o grupo divulgado. Adicionar um nome, ou excluir um em silêncio, muda a seleção independentemente do algoritmo.
As duas são falhas de processo, e as duas são o que uma gravação do sorteio impede. É por isso que gravar com a lista de participantes em quadro vale mais do que qualquer propriedade técnica: isso fecha as duas portas.
Onde Esse Nível de Rigor se Justifica
Para escolher o almoço, nada disso importa. Qualquer gerador produz um almoço aceitável.
Isso passa a ser essencial quando há algo em jogo, uma reputação ou uma dimensão legal:
- Sorteios de prêmios e concursos. O resultado verificável é o ponto central
- Atribuição de funcionários ou tarefas. As pessoas vão inspecionar o processo
- Randomização científica e clínica. O padrão da área é aleatoriedade documentada, semeada e reproduzível
- Contextos regulatórios e de auditoria. Aleatoriedade documentada costuma ser exigência, não preferência
Os requisitos em todos esses casos são os mesmos quatro, e são curtos: o grupo é fixo e divulgado, os pesos são divulgados se existirem, a fonte não é previsível e o resultado é gravado com o grupo visível.
Como Verificar Você Mesmo
Você não consegue auditar um CSPRNG numa aba do navegador, mas consegue raciocinar sobre o mecanismo, e isso basta.
Pergunte qual é a fonte. Se a resposta for “uma função aleatória”, pergunte se é a previsível. crypto.getRandomValues() é uma resposta específica e verificável.
Pergunte como a uniformidade é obtida. Se a resposta envolve escalar um ponto flutuante para um intervalo sem mencionar amostragem por rejeição, o mapeamento provavelmente é enviesado. Pouco, mas de forma mensurável.
Pergunte o que o operador poderia ter mudado. Se não pudesse mudar nada, o resultado é defensável. Se um nome pudesse ser pulado ou o sorteio refeito, não é — independentemente da fonte.
A página de imparcialidade detalha a implementação deste site. Vale a pena ler uma vez se você está escolhendo uma ferramenta para uma decisão que será questionada.