Como funciona um dado virtual
Publicado em agosto de 2026
Todo dado na tela faz duas coisas: consegue um número imprevisível e transforma esse número em uma face. As duas etapas têm um jeito certo e um jeito conveniente de fazer, e a diferença entre elas é o que separa um dado honesto de um dado levemente torto que ninguém percebe.
Etapa 1: de onde vem o número
A função que quase todo site usa é a Math.random() do JavaScript. Ela não sorteia nada: ela calcula. Existe um número guardado na memória, a função aplica uma fórmula sobre ele, devolve o resultado e guarda o novo estado para a próxima chamada. A sequência é inteiramente determinada pelo estado inicial — por isso o nome técnico é gerador pseudoaleatório.
Para simulação e para jogo casual isso é ótimo: é rápido e a saída passa nos testes estatísticos de uniformidade. O problema é outro: a sequência é reconstituível. Quem observa saídas suficientes consegue, em princípio, deduzir o estado interno e prever as próximas. E a especificação da linguagem não garante nem que dois navegadores usem a mesma fórmula, nem que o estado inicial seja difícil de adivinhar.
A alternativa é crypto.getRandomValues(). Ela pede números ao gerador do sistema operacional, que é alimentado por entropia física recolhida pela máquina — variação de tempo entre interrupções de hardware, atividade de disco e de rede, ruído de dispositivos. Esse gerador é projetado com um requisito extra: mesmo conhecendo toda a saída anterior, não deve ser praticável prever a próxima. É o que este site usa em toda ferramenta.
Etapa 2: transformar o número em uma face
Aqui mora o erro silencioso, e ele merece a conta feita. Suponha que você obteve um byte, ou seja, um valor de 0 a 255, e quer uma face de 1 a 6. O caminho óbvio é o resto da divisão: valor % 6 + 1. Parece inofensivo. Não é.
256 dividido por 6 dá 42 com resto 4. Isso significa que, dos 256 valores possíveis, quatro faces recebem 43 valores cada e duas faces recebem apenas 42. Em números:
| Face | Valores que caem nela | Probabilidade |
|---|---|---|
| 1, 2, 3, 4 | 43 | 16,80% |
| 5, 6 | 42 | 16,41% |
| O justo seria | 16,67% | |
As faces 1 a 4 saem 2,4% mais que as faces 5 e 6. Jogando com amigos, ninguém vai notar isso nunca. Mas é um dado torto, e o conserto é barato demais para não ser feito.
O conserto: descartar em vez de dobrar
A técnica se chama amostragem por rejeição. Em vez de forçar 256 valores dentro de 6 faces, você define o maior múltiplo de 6 que cabe em 256 — 252 — e simplesmente descarta os valores de 252 a 255. Sorteia de novo quando isso acontece. Como sobraram exatamente 252 valores para 6 faces, cada face recebe 42 e a distribuição fica perfeita.
O custo é desprezível: a chance de precisar sortear de novo é 4 em 256, ou 1,6%. E o laço termina — a probabilidade de descartar dez vezes seguidas é menor que uma em cem trilhões. É exatamente esse laço que roda nas ferramentas deste site, sobre valores de 32 bits em vez de um byte, para qualquer número de faces ou de itens em uma lista.
Por que o dado digital ganha do dado físico
Um dado de plástico tem dois problemas que o digital não tem. O primeiro é de fabricação: em dado barato, os pontos são cavados e a face 6 perde mais material que a face 1, o que desloca o centro de massa e favorece levemente a face oposta ao 6. O segundo é o arremesso: dado solto sempre da mesma altura, com a mesma força e rolando pouco, mantém correlação com a posição inicial. Nenhum dos dois existe num gerador criptográfico — cada resultado é independente do anterior por construção.
O dado físico, em troca, tem uma coisa que o digital não tem: ele é auditável por qualquer pessoa presente. Todo mundo vê o objeto cair. Nenhuma página web consegue provar a um estranho o que fez internamente, e é por isso que a nossa recomendação nunca é "confie no site", mas sim "role na frente de todos".
Como verificar por conta própria
Abra o dado online e role 60 vezes acompanhando a contagem. Você vai ver diferenças de três ou quatro entre as faces, e isso é o esperado — em 60 rolagens, o desvio típico de cada face é de cerca de 3. Ver uma face com 16 e outra com 5 não indica nada. O que indicaria problema é a diferença proporcional continuar grande depois de centenas de rolagens. O método estatístico para decidir isso está em como identificar dado viciado.
Leia também
- Sequências que parecem impossíveis
- A probabilidade de dois dados
- Dado de nomes — a ferramenta que aplica tudo isto