fixmint
PT

Como sortear ganhadores de um sorteio de forma justa e mostrar como foi feito

Por · · atualizado em 8 de novembro de 2026 · 4 min de leitura

Para escolher um ganhador de forma justa, use um gerador feito para segurança, dê a mesma chance a cada participante e deixe que as pessoas conferam o resultado depois. A maior parte da injustiça em um sorteador simples vem de uma de duas causas: uma fonte fraca de aleatoriedade ou um pequeno deslize aritmético chamado viés do módulo. Ambos têm solução. Uma lista pública de participantes e um registro do sorteio são a melhor prova de que ninguém escolheu o ganhador.

Sorteador aleatórioEscolher um vencedor com justiçaUse de graça

Aleatoriedade verdadeira e pseudoaleatoriedade

Uma fonte de aleatoriedade verdadeira tira sua imprevisibilidade de um processo físico, como o ruído eletrônico. Um gerador pseudoaleatório é uma fórmula. Ele parte de uma semente, aplica passos determinísticos e produz uma sequência que parece aleatória. A sequência é totalmente determinada pela semente, então quem conhece a semente e a fórmula consegue prever cada número.

A maioria dos softwares usa geradores pseudoaleatórios, e isso serve para embaralhar uma playlist ou sortear a fase de um jogo. Em um sorteio com prêmio em jogo, a pergunta é se alguém poderia prever ou influenciar o resultado. Um gerador rápido, mas previsível, é a ferramenta errada.

Use o gerador criptográfico do navegador

Em JavaScript, Math.random() é um gerador pseudoaleatório rápido. A documentação dele diz que ele não é adequado para criptografia, e um sorteio com prêmio é uma escolha sensível à segurança. A função crypto.getRandomValues(), da Web Crypto API, preenche um array com valores tirados da fonte criptográfica de aleatoriedade do sistema operacional. É essa que você deve usar. O sorteador aleatório usa essa função em todos os sorteios, inclusive nos lançamentos de moeda e de dados. Uma ferramenta que não informa o que usa é mais difícil de confiar, então pergunte antes de depender dela.

Viés do módulo, com um exemplo

Suponha que sua fonte gere um byte aleatório, um número inteiro de 0 a 255, e que você queira escolher uma entre três participações. O caminho mais simples é pegar o resto da divisão por 3. Parece justo, mas 256 não se divide igualmente em grupos de três.

  • Os valores 0, 3, 6 e assim por diante, até 255, deixam resto 0. São 86 valores.
  • Os valores que deixam resto 1 somam 85, e os que deixam resto 2 também somam 85.

Assim, a participação 0 sai 86 vezes em 256, cerca de 33,6%, enquanto as participações 1 e 2 saem 85 vezes cada, cerca de 33,2%. A diferença é pequena, mas é real, e cresce quando o número de participações fica grande em relação ao intervalo da fonte.

A solução é a amostragem por rejeição. Sorteie um valor e, se ele cair na parte sobrante e desigual, sorteie de novo. No exemplo do byte, você rejeita o 255 e aceita apenas os valores de 0 a 254, que se dividem igualmente por três. Com um número aleatório de 32 bits, a sobra é de cerca de um valor em 4,3 bilhões, então o viés é desprezível para um sorteio. Ainda assim, um sorteador cuidadoso trata isso, porque o mesmo deslize piora conforme o intervalo diminui.

Sorteios sem repetição

Se você precisa de vários ganhadores, sortear um índice aleatório três vezes pode escolher a mesma participação duas vezes. Dois métodos limpos evitam isso:

  1. Remova cada ganhador da lista e sorteie de novo entre os restantes.
  2. Embaralhe a lista inteira uma única vez com o método de Fisher–Yates e depois pegue os ganhadores do topo.

O Fisher–Yates percorre a lista do fim para o início, troca cada posição por outra escolhida ao acaso entre ela e o começo, e gera todas as ordens possíveis com a mesma probabilidade, desde que as escolhas aleatórias sejam justas. É curto, bem conhecido e fácil de explicar aos participantes. As opções Remover ganhadores e Sem repetições do sorteador cobrem os dois métodos.

Deixe o sorteio verificável

Um sorteio justo é aquele que qualquer pessoa pode verificar. Antes do sorteio:

  • Publique as participações como uma lista numerada, junto com as regras de quem podia participar.
  • Publique a impressão digital SHA-256 dessa lista. Qualquer ferramenta de SHA-256 consegue gerá-la, como o gerador de hash. A impressão digital muda por completo se uma única participação mudar, então a lista não pode ser editada discretamente depois. A mesma verificação confirma downloads; como conferir o checksum SHA-256 de um download mostra os passos.

Durante e depois do sorteio:

  • Grave a tela desde o momento em que você inicia o sorteador até o resultado exibido.
  • Publique a lista final com o número vencedor, para que as pessoas possam recalcular a impressão digital e confirmar que nada mudou.
  • Diga como o ganhador foi escolhido, por exemplo: "escolhido com um sorteador no navegador que usa a fonte criptográfica de aleatoriedade do sistema operacional".

As regras de sorteios variam de plataforma para plataforma, e as promoções com prêmio podem ter exigências legais que dependem de onde você mora. Confira as regras de promoção da plataforma e a legislação local antes de fazer um sorteio. Este é um guia geral, não uma consultoria jurídica. Quando estiver pronto, sorteie um ganhador com o sorteador aleatório.

Como fazer com o fixmint

  1. Escolha Nomes e depois cole as participações em Nomes, um por linha.
  2. Defina Ganhadores com o número de prêmios. Marque Remover ganhadores da lista para que ninguém ganhe duas vezes.
  3. Para um sorteio numerado, escolha Número, defina Menor e Maior e marque Sem repetições se cada número puder ganhar apenas uma vez.
  4. Clique em Sortear ganhadores, com a gravação da tela já em andamento desde o início.
  5. Publique as participações numeradas, a impressão digital SHA-256, a participação vencedora e como o sorteador foi usado.

Respostas rápidas

O Math.random() serve para um sorteio?

Serve para jogos e embaralhamentos, mas não para um sorteio que as pessoas vão conferir, porque o resultado dele pode ser previsto. Use uma fonte criptográfica.

Por que não pegar um número aleatório e o resto da divisão pelo número de participações?

Quando o intervalo não se divide igualmente, o resto fica desigual, então algumas participações ficam um pouco mais prováveis. A amostragem por rejeição elimina esse viés.

Posso escolher vários ganhadores em um mesmo sorteio?

Sim. Remova cada ganhador antes do próximo sorteio ou embaralhe uma vez e pegue as primeiras participações. De qualquer forma, nenhuma participação pode ganhar duas vezes.

Traduzido do Original em inglês com auxílio de IA.

Comentários

    Ainda não há comentários. Seja o primeiro.

    Sua nota (opcional)

    Seu e-mail nunca é exibido nem guardado.

    Capa de The Paperoom Game Night KitThe Paperoom Game Night Kit

    Uma noite de jogos para imprimir, com 52 páginas: bingo para festas, quebra-cabeças, jogos de tabuleiro e batalhas no papel e lápis, além de planejador e placares.

    $7.00Compre na GumroadEm inglês