Sob o capô de TirageAuSort.io: como nossos sorteios são justos
Você inicia Cara ou Coroa no site. Vê a moeda girar, aterrissar, mostrar Cara. Mas o que realmente aconteceu entre seu clique e esse resultado? E principalmente: por que você deveria confiar em nós para um sorteio online confiável?
Este artigo abre o capô. Não para se exibir, nem para afogar o assunto em jargão — pelo contrário: para que ao final da sua leitura você possa verificar você mesmo que tudo está em ordem. A transparência não é um slogan; é uma prática concreta. Aqui está como nossos sorteios são projetados, o que garante sua equidade, e os gestos simples que permitem que você verifique sem ser desenvolvedor.
Como um computador «sorteia»
Primeiro ponto de honestidade: um computador não sabe fazer acaso puro. Ele faz acaso calculado. A diferença é sutil, mas importa.
Quando você lança uma moeda real, o resultado depende de mil fatores imprevisíveis: a força do seu polegar, a resistência do ar, a irregularidade da moeda, o chão onde ela cai. Quando você clica no nosso botão, o computador realiza em vez disso um cálculo matemático projetado para produzir sequências de algarismos tão irregulares que, na prática, não podem ser previstas. Esse cálculo tem um nome: um gerador de números pseudoaleatórios.
Concretamente, seu navegador (Chrome, Firefox, Safari, Edge) inclui duas ferramentas distintas:
Math.random()— a função generalista. É rápida, distribuída uniformemente, e amplamente suficiente para lançar uma moeda, jogar um dado ou escolher um nome em uma lista. Os navegadores modernos a implementam com um algoritmo chamado xorshift128+, que produz sequências difíceis de distinguir do verdadeiro acaso a olho nu.crypto.getRandomValues()— a versão criptográfica. Mais lenta, mas imprevisível mesmo para um atacante que observasse milhares de resultados anteriores. É a ferramenta padrão para gerar senhas ou chaves de segurança.
No TirageAuSort.io, usamos a primeira para a grande maioria dos jogos (Cara ou Coroa, Dados Virtuais, Roleta da Fortuna, sorteios de cartas) e a segunda para ferramentas sensíveis: Gerador de senhas, Cor aleatória, Data aleatória. A ferramenta certa no lugar certo. É uma decisão técnica consciente, não uma escolha por padrão.
As quatro garantias de equidade
Escolher o gerador certo não basta. Um sorteio pode continuar enviesado se for mal codificado em torno dele. Quatro regras enquadram cada jogo do site.
Uma distribuição uniforme
Em Cara ou Coroa, Cara deve sair 50 % do tempo e Coroa 50 % — não 49/51. No Gerador de números entre 1 e 100, cada inteiro deve ter exatamente 1 % de chance. Parece evidente, mas um erro clássico consiste em usar o operador módulo (o resto de uma divisão) sobre a saída bruta do gerador, o que introduz um viés minúsculo, mas real, em certos intervalos. Evitamos essa armadilha com o método padrão recomendado pela documentação Web oficial: multiplicar o resultado pelo limite superior e arredondar para baixo. Resultado: em 10 000 sorteios, a diferença entre os valores permanece estatisticamente insignificante.
Sem memória entre os sorteios
Cada clique é um evento independente. O site não memoriza seus resultados anteriores para «equilibrar» os seguintes — isso seria precisamente a falácia do apostador aplicada ao código, e dedicamos um artigo inteiro a ela. Se você tirar sete Caras seguidas, o oitavo sorteio ainda terá 50 % de chance de ser Cara. É desagradável para a intuição, mas é rigorosamente o que nosso código produz.
Tudo acontece no seu navegador
Esse é provavelmente o ponto mais importante. TirageAuSort.io é um site estático: não há servidor que «decida» seu resultado. Quando você clica, o cálculo é executado na sua própria máquina, no código JavaScript que você baixou ao chegar na página. Isso torna qualquer manipulação do lado do servidor tecnicamente impossível — não há servidor. Também torna o código consultável, o que nos leva ao próximo ponto.
A ferramenta certa para o uso certo
Voltemos ao exemplo da senha. Se usássemos Math.random() para gerar uma chave de 16 caracteres, duas pessoas que visitassem o site no mesmo milissegundo poderiam, teoricamente, obter senhas parcialmente previsíveis. Com crypto.getRandomValues(), esse risco desaparece: o gerador se alimenta diretamente das fontes de entropia do sistema operacional (movimentos do mouse, teclas pressionadas, eventos de rede), conforme as recomendações do NIST em matéria de segurança. Onde a qualidade do acaso tem consequências, subimos um degrau.
Como verificar você mesmo
Aqui está a parte que torna este artigo diferente: você não precisa acreditar na nossa palavra.
Teste nº 1 — Leia o código. Em qualquer página do site, pressione a tecla F12. Uma janela se abre: são as ferramentas de desenvolvimento, integradas ao seu navegador há anos. Procure a aba «Fontes» ou «Depurador». Lá você encontrará o JavaScript executado na página, em texto claro. Procure pelas palavras Math.random ou crypto.getRandomValues: você lerá literalmente a linha que produz seu resultado. Sem ofuscação, sem chamada oculta a um serviço terceiro.
Teste nº 2 — A distribuição. Lance Cara ou Coroa cem vezes seguidas. Anote os resultados. Você deveria ficar em torno de 50/50, com uma variação possível de mais ou menos uns dez. Se quiser ser mais rigoroso, abra o console do navegador (sempre via F12, aba «Console») e digite: let p = 0; for (let i = 0; i < 10000; i++) if (Math.random() < 0.5) p++; p — você verá aparecer um número entre 4 900 e 5 100. É o acaso matemático, sem cenografia.
Teste nº 3 — A coerência. O site é um projeto francófono independente, sem investidores nem redes publicitárias que teriam interesse em falsear os sorteios. O único ativo que protegemos é a confiança que você deposita em uma ferramenta usada para resolver uma decisão real. Trapacear seria economicamente absurdo, tecnicamente detectável e eticamente desqualificador para a continuidade do projeto.
O acaso é um péssimo argumento de marketing
Muitos sites falam em «sorteios certificados» sem especificar por quem nem com qual método. Nossa abordagem é a oposta: nem rótulo, nem promessa vaga — apenas duas funções padronizadas da Web, usadas corretamente, executadas localmente, e legíveis por qualquer pessoa que abra as ferramentas de desenvolvimento. Se amanhã alguém identificar um erro no nosso código, ele será público por construção e corrigido. Essa é a definição prática de um sorteio online confiável: não um argumento comercial, mas um contrato técnico que você pode auditar.
Para se aprofundar no assunto, você pode ler nossos artigos sobre a retirada dos jogos de cassino, sobre os sinais do jogo problemático, e sobre as verdadeiras probabilidades de Cara ou Coroa — o teste prático dessa equidade em 10 000 lançamentos, com o desvio padrão e a fórmula log₂(N) para entender por que 13 caras consecutivas não têm nada de excepcional. A transparência do motor é o primeiro passo; entender o que se passa na sua cabeça é a consequência lógica.