Pular para o conteúdo principal

Como o sorteio funciona

Nada de “confie na gente, é aleatório”. Aqui está o método.

O vencedor é escolhido antes de a roleta girar

Cada giro escolhe o vencedor antes e depois direciona a animação até ele. Essa ordem garante que a força do movimento não altere o resultado, e que ativar a redução de movimento ofereça o mesmo sorteio sem animação, em vez de seguir um caminho de código diferente. Isso também significa que a rotação exibida é a encenação de uma decisão já tomada — a única forma de cumprir ambas as garantias com total precisão.

De onde vem a aleatoriedade

A fonte é o gerador criptográfico do seu navegador, crypto.getRandomValues, e não Math.random. Math.random pode ser previsível, e em alguns motores ele realmente é; para um sorteio, isso faz diferença.

Por que descartamos alguns números

Transformar um número aleatório de 32 bits em “um número de 0 a 11” pegando o resto da divisão é sutilmente injusto. 2³² não é divisível por 12, então as primeiras opções recebem uma chance extra. Em uma roleta de doze fatias, a distorção é mínima, mas real, sempre favorece as mesmas fatias e nunca se equilibra sozinha. Por isso, em vez de usar o resto, descartamos qualquer sorteio que caia nessa sobra desigual e realizamos um novo. Isso custa um sorteio extra ocasional e garante um resultado perfeitamente uniforme.

const limit = Math.floor(2 ** 32 / max) * max;

let draw = crypto.getRandomValues(new Uint32Array(1))[0];
while (draw >= limit) {
  draw = crypto.getRandomValues(new Uint32Array(1))[0];
}

return draw % max;

Pesos e por que o tamanho das fatias corresponde a eles

Um sorteio ponderado soma os pesos, escolhe um número uniforme abaixo desse total pelo mesmo método de rejeição e identifica em qual entrada esse número se encaixa. A roleta então desenha cada fatia exatamente na sua proporção do círculo. Uma roleta cujas fatias parecessem iguais com chances diferentes seria exatamente o tipo de ilusão que evitamos; portanto, área visual e probabilidades são equivalentes por construção, e não apenas por convenção.

Sua lista nunca sai do seu navegador

Não há contas nem armazenamento em servidores. Sua lista fica salva neste navegador, e os links compartilhados contêm a roleta codificada na própria URL. Nada sobre os sorteios é registrado onde possamos ver.

Verifique você mesmo

O sorteio possui poucas dezenas de linhas e cada afirmação acima é validada por testes automatizados — incluindo um que fornece ao gerador números projetados para causar viés de módulo e confirma que o resultado continua uniforme.

Uma roleta suporta até 1000 entradas, e o método acima é exatamente o mesmo para uma entrada ou para todas as 1000.