Sorteador de nomes
Cole os nomes, escolha quantos ganhadores quer e sorteie. O acaso vem do gerador criptográfico do seu navegador — o mesmo que cria chaves —, e a lista não sai do seu aparelho.
Rodadas desta sessão (últimas 5)
O botão de rodadas leva a sessão inteira, com a hora e a lista de cada uma — não só as 5 linhas à vista.
Como melhorar esta calculadora?
Faltou uma verba, o número saiu diferente ou alguma palavra ficou confusa? Escreva.
Abre seu programa de e-mail com o assunto e a página já preenchidos, e com as perguntas que ajudam a entender o caso. Sem formulário, sem cadastro, sem cookie.
publicidade
De onde vem o acaso deste sorteio
Quase todo sorteador de nomes da internet chama Math.random(). Ele é
rápido e resolve bem a pergunta "quem começa jogando" — mas é pseudoaleatório:
parte de um estado interno e produz uma sequência que, conhecido esse estado, é
inteiramente previsível. A especificação da linguagem nem exige que ele seja
imprevisível.
Esta página usa crypto.getRandomValues(), que vem do gerador do próprio
sistema operacional — o mesmo que produz chaves criptográficas, alimentado pelo ruído
físico que a máquina coleta. Não há semente, não há relógio, não há contador. É a
diferença entre "aleatório o bastante para uma brincadeira" e aleatório o bastante para valer entre pessoas que discordam.
O viés que aparece justamente quando a lista não é potência de dois
O gerador entrega um número inteiro entre 0 e 4.294.967.295 (são 232 valores). Para virar uma posição da sua lista, o caminho óbvio é tirar o resto da divisão, e o caminho óbvio quase sempre está errado: quando o tamanho da lista não divide 232, sobra uma cauda incompleta e os primeiros nomes passam a sair um tiquinho mais que os últimos. É o viés de módulo, minúsculo e invisível a olho nu — e ele existe em qualquer lista cujo tamanho não seja 2, 4, 8, 16…
Numa lista de sete pessoas o desvio é pequeno demais para alguém notar numa tarde. Numa rifa com mil bilhetes, sorteada toda semana, ele é a diferença entre o sorteio ser justo e não ser. O motor deste site descarta a cauda incompleta em vez de dobrá-la, e é o mesmo motor que o Sorteador de números e o Cara ou coroa usam — a garantia não pode depender de o autor de cada página ter percebido que o caso dele era o fácil.
Nada sai do seu navegador
Não há requisição de rede em nenhum ponto do sorteio: o gerador é do navegador, a conta é do navegador e o histórico vive na memória da aba. Nenhum nome é enviado, gravado em servidor ou salvo no seu aparelho — o que também quer dizer que recarregar a página zera o histórico. É o mesmo compromisso do Gerador de senha forte e dos outros geradores do site.
O botão de compartilhar a lista segue a mesma regra, e de um jeito que vale explicar: os
nomes vão depois do # do endereço, e não numa ?query. O que
vem depois do # nunca é enviado ao servidor nem entra em log de acesso — e
uma lista de sorteio costuma ser uma lista de gente. Quem abrir o link encontra a roda
montada com os mesmos nomes, e sorteia por conta própria: o link leva a lista, não o
resultado.
Como registrar um sorteio que alguém pode contestar
Sorteio de prêmio tem uma propriedade incômoda: quem perdeu não viu, e quem viu não precisa de prova. O que resolve isso não é a qualidade do gerador — é o registro, e ele precisa ser feito antes, durante e depois.
- Combine a lista e a quantidade antes de sortear. Publicar a lista fechada é o passo que quase todo mundo pula e é o único que não dá para refazer depois. Sem ele, qualquer discussão vira "quem estava mesmo concorrendo?".
- Deixe a tela visível, ou grave. A hora de cada rodada aparece ao lado do resultado, no fuso do seu aparelho — é o que permite conferir contra o relógio do vídeo depois.
- Copie as rodadas logo em seguida. O texto traz todas as rodadas da sessão, inclusive as de teste, e a lista de entrada de cada uma quando ela muda. Repetir a lista igual em toda linha afogaria o que interessa; omiti-la quando ela muda esconderia exatamente a manobra que alguém contestaria — tirar um nome entre um sorteio e outro.
- Guarde o texto fora da aba. O histórico vive na memória da página: fechou, acabou. Isso é bom para a privacidade da lista e ruim para a sua memória, e o botão de copiar existe para resolver o segundo sem estragar o primeiro.
Uma ressalva que não é jurídica e sim de expectativa: nada disso torna a promoção regular. Sorteio comercial, rifa e promoção ao público podem depender de autorização própria, e o sorteio ser justo é uma questão separada de a promoção ser permitida. A página resolve a primeira e não tem opinião sobre a segunda.
Nome repetido na lista, e outras regras da colagem
A lista que você cola passa por três regras, e todas as três existem porque a colagem real é bagunçada — vem de planilha, de PDF, de conversa de aplicativo.
- Quebra de linha manda; vírgula só decide quando não há quebra. "Ana, Bia, Carol" numa linha são três pessoas. "Silva, João" numa lista de dez linhas é uma pessoa só. Quebrar por vírgula sempre partiria nomes ao meio numa lista vinda de planilha; nunca quebrar faria a colagem mais comum de todas virar um item chamado "Ana, Bia, Carol".
- Linha vazia some, espaço nas bordas some. Colar de PDF traz muitas linhas vazias, e nenhuma delas é uma pessoa.
- Nome repetido fica, e vale como peso. Três linhas com "Ana" numa lista de quatro dão a ela três chances em quatro. Isso é uma funcionalidade — é como se registra que alguém comprou três bilhetes —, e é por isso que a página não deduplica: apagar uma linha que você escreveu seria mudar o seu sorteio sem avisar.
Vale saber o que a opção "o mesmo nome pode sair duas vezes" faz, porque ela é outra coisa. Ela não trata da sua lista, e sim da rodada: com ela desligada, tirar três ganhadores devolve três posições diferentes da lista; com ela ligada, cada tirada é independente e a mesma posição pode sair de novo — que é o comportamento de um dado, e não o de uma rifa.
E se o que você quer é ver a roda girar em vez de ler uma lista, o sorteio é o mesmo e a página é outra: o suspense é metade do produto quando há plateia. As outras contas do dia a dia estão nas calculadoras de utilidades.
Perguntas frequentes
Como sortear um nome de uma lista?
Cole a lista no campo, um nome por linha, escolha quantos ganhadores quer e toque em Sortear. Se você colar tudo numa linha só, separe por vírgula — a página entende os dois formatos, e é essa a única regra que ela impõe à sua lista. Linhas vazias somem sozinhas, o que resolve o caso de colar de PDF ou de planilha, e o espaço nas bordas de cada nome é ignorado. Não é preciso cadastro, login nem instalar nada: o sorteio acontece dentro da aba que já está aberta.
O sorteio é mesmo justo?
É, e de um jeito que dá para verificar. Cada nome sai do gerador criptográfico do seu próprio navegador (crypto.getRandomValues), alimentado pelo ruído físico que o sistema operacional coleta — não há semente, não há relógio e não há contador, então ninguém, nem quem escreveu esta página, consegue prever ou repetir o resultado. A conta que transforma esse número num índice da sua lista descarta a sobra que criaria viés em vez de tirar o resto da divisão, que é o atalho errado que faz os primeiros nomes saírem um pouquinho mais que os últimos.
Um nome repetido na lista tem mais chance?
Tem, e isso é de propósito: escrever o mesmo nome duas vezes dá a ele duas chances. É a única forma de dar peso a alguém nesta página, e ela é útil de verdade — sorteio de rifa em que cada pessoa comprou um número diferente de bilhetes é exatamente isso. Se você não quer peso nenhum, confira se a lista não tem duplicata antes de sortear. A página não deduplica sozinha porque apagar uma linha que você escreveu seria mudar o seu sorteio sem avisar.
Como provar o resultado para quem não estava vendo?
O que sustenta um sorteio contestado não é o software, é o registro. Combine a lista e a quantidade antes de sortear, deixe a tela visível durante a transmissão ou grave o vídeo, e toque em Copiar rodadas logo depois: o texto que sai traz a hora de cada rodada e a lista de entrada de cada uma, inclusive as rodadas de teste. É esse detalhe que responde à pergunta que sempre aparece — "e se você tivesse sorteado dez vezes até dar no seu primo?" —, porque um comprovante que esconde as tentativas é pior que nenhum: parece prova.
A lista de nomes é enviada para algum servidor?
Não, e essa é a razão de a página funcionar do jeito que funciona. Não há requisição de rede em nenhum ponto do sorteio: o gerador é do navegador, a conta é do navegador e o histórico vive na memória da aba. Nenhum nome é enviado, gravado em servidor ou salvo no seu aparelho — o que também quer dizer que recarregar a página zera o histórico. Até o botão de compartilhar a lista respeita isso: ele põe os nomes depois do # do endereço, e o que vem depois do # não é enviado ao servidor nem entra em log de acesso.
Quantos nomes cabem na lista?
Até 200 nomes, e você pode tirar até 10 ganhadores por rodada. Os dois limites são de apresentação, não de aritmética: acima disso o resultado deixa de caber no mostrador e vira um parágrafo, que é outra coisa. Se a sua lista é maior que isso, o caminho é o de sempre nas rifas — numere os participantes e sorteie o número correspondente no sorteador de números, que aceita qualquer intervalo. A vantagem é que aí a lista com os nomes nem precisa ser colada.
Sobre o sorteio: aleatoriedade do gerador criptográfico do seu navegador, sem tabela oficial nem norma envolvida. Rifa e promoção comercial podem depender de autorização própria — o sorteio ser justo não torna a promoção regular.