Como a roleta continua justa

Cada giro é decidido pelo gerador criptográfico de números aleatórios do seu navegador antes de a roleta começar a se mexer. Nada do que você digita é enviado para nós. Esta página explica o método e mostra a auditoria automática mais recente.

Como o ganhador é escolhido

O ganhador é sorteado com crypto.getRandomValues, o mesmo gerador criptograficamente seguro que os navegadores usam para chaves de criptografia.

Números aleatórios de 32 bits viram uma posição na roleta por amostragem por rejeição: um número que deixaria algumas opções um pouco mais prováveis que outras é descartado e sorteado de novo. Isso elimina o pequeno viés de usar o resto de uma divisão.

O ganhador é escolhido primeiro. Depois, a animação gira a roleta para que ela pare dentro da fatia do ganhador, num ponto aleatório longe das bordas.

Pesos

Uma opção escrita como Pizza*3 tem três vezes mais chance de ganhar que uma opção com peso 1, e a fatia dela é três vezes mais larga. Os pesos podem ser números inteiros ou decimais de 0,001 a 1.000.000. Na roleta, escreva os decimais com ponto, como Pizza*0.5.

Sorteios verificáveis

Em sorteios e rifas, um sorteio verificável permite que qualquer pessoa confira depois que o resultado não foi alterado.

  1. Antes do giro, a página cria uma semente secreta e mostra um hash SHA-256 da semente, das opções e do horário. Publique o hash, por exemplo no chat da sua live, antes de girar.
  2. O giro usa um gerador criado a partir da semente secreta, então a semente e as opções definem totalmente o ganhador.
  3. Depois do giro, a página revela a semente num comprovante do sorteio. Qualquer pessoa pode colar o comprovante na página de verificação, que confere o hash e recalcula o ganhador.

O método exato

O hash é o SHA-256 deste texto em UTF-8: uma linha de cabeçalho, o horário do registro, a semente e depois uma linha por opção com o peso, uma tabulação e o rótulo.

weeks-and-random-draw v1
committed_at: 2026-10-16T14:05:09.123Z
seed: 64 hexadecimal characters
3	Pizza
1.5	Sushi
  1. A semente tem 32 bytes aleatórios de crypto.getRandomValues, escritos como 64 caracteres hexadecimais minúsculos.
  2. O gerador produz números de 32 bits a partir de SHA-256(bytes da semente seguidos de um contador big-endian de 4 bytes), para o contador 0, 1, 2 e assim por diante, lendo cada hash de 32 bytes como oito números big-endian.
  3. Se todos os pesos forem números inteiros e o peso total for no máximo 2^32, o sorteio pega o próximo número de 32 bits, pula esse número enquanto ele for maior ou igual a 2^32 − (2^32 mod total) e fica com o resto da divisão pelo total.
  4. Caso contrário, ele pega os dois próximos números de 32 bits, a e b, e calcula ((a >> 5) × 2^26 + (b >> 6)) ÷ 2^53, um número de 0 até 1, sem incluir o 1, e depois multiplica esse número pelo peso total.
  5. O ganhador é a primeira opção cuja soma acumulada de pesos é maior que esse número.

Um sorteio verificável prova que as opções e o resultado não foram alterados depois da publicação do hash. Ele não impede que um organizador crie vários hashes em segredo e publique só o que lhe convém, por isso publique o hash antes de encerrar as inscrições e crie apenas um.

Verificar um comprovante de sorteio

Auditoria mais recente

Estes testes rodam automaticamente a cada mudança no site. Última execução: 19 de outubro de 2026, 18:31.

Todos os testes passaram.

Testes qui-quadrado: um teste passa quando o valor-p é maior que 0,01.
Cenário Giros Qui-quadrado Graus de liberdade Valor-p Resultado
2 opções iguais 1.000.000 0,86 1 0,3544 Passou
7 opções iguais 1.000.000 3,42 6 0,7549 Passou
100 opções iguais 1.000.000 125,45 99 0,0375 Passou
1.000 opções iguais 1.000.000 1.081,73 999 0,0346 Passou
Modo eliminar o sorteado, 7 opções, todas as posições 999.999 41,72 36 0,2360 Passou
Modo sem repetir, 7 opções, todas as posições 999.999 39,90 36 0,3007 Passou
Opções com peso: a porcentagem de vitórias de cada opção não pode se afastar mais de 0,5 ponto percentual do seu peso.
Pesos Giros Maior diferença Resultado
1, 2, 3, 4 1.000.000 0,030 pontos percentuais Passou
0.5, 1.5, 3, 0.25 1.000.000 0,050 pontos percentuais Passou

10.000 de 10.000 giros sorteados pararam no ganhador anunciado.

10.000 de 10.000 comprovantes de sorteio aleatórios foram recalculados corretamente, tanto no navegador quanto por uma implementação independente.

Versão do motor da roleta: d828d1f5c0c3.

Sugerir uma tradução melhor

Viu uma tradução errada ou estranha nesta página? Diga para a gente como deveria ficar. Uma pessoa analisa cada sugestão antes de qualquer mudança.