Roleta online
Escreva suas opções, gire a roda
Cada linha na caixa vira uma fatia. Aperte girar, a roda gira e desacelera, e a fatia sob o ponteiro ganha.
Nada é enviado. Suas entradas ficam na aba do navegador e desaparecem quando você a fecha.
O vencedor é escolhido antes de a roda se mover
Isso importa mais do que parece.
A forma óbvia de construir uma roda é dar a ela um impulso aleatório, deixar o atrito desacelerá-la e ler o que quer que fique sob o ponteiro. Essa abordagem faz o resultado depender do arredondamento do ângulo final e de quantos quadros de animação o seu dispositivo conseguiu desenhar — um celular lento e um computador rápido não seriam igualmente justos.
Esta roda faz o contrário. Sorteia um vencedor a partir de
crypto.getRandomValues() primeiro, depois calcula a rotação exata que faz
essa fatia parar sob o ponteiro e anima até lá. O giro é apresentação; o
sorteio já está decidido e é comprovadamente uniforme.
Por isso, cada fatia tem exatamente a mesma probabilidade, seja qual for o número de fatias, o comprimento dos seus rótulos ou o dispositivo que você está usando.
Remover o vencedor, ou continuar girando a roda completa
Com remover vencedor ativado, cada giro retira da roda a entrada vencedora. Gire repetidamente e você obtém uma ordem: primeiro, segundo, terceiro. Bom para sortear vários prêmios, ou para decidir a ordem de apresentação diante de uma sala.
Com essa opção desativada, a roda permanece completa e a mesma opção pode ganhar duas vezes — que é o que você quer para “onde jantamos hoje”.
Ponderar a roda repetindo uma entrada
A roda dá a cada fatia a mesma probabilidade, por isso a forma de favorecer uma opção é dar a ela mais fatias. Listá-la duas vezes dobra a sua parcela.
| Entradas | Fatias | Probabilidade para Pizza |
|---|---|---|
| Pizza, Sushi, Tacos | 3 | 33% |
| Pizza, Pizza, Sushi, Tacos | 4 | 50% |
| Pizza ×3, Sushi, Tacos | 5 | 60% |
Os rótulos duplicados aparecem na roda mais de uma vez, o que é honesto — quem estiver assistindo pode contar as fatias e ver a ponderação em vez de confiar apenas na sua palavra. Essa visibilidade é o propósito de uma roda; um peso escondido anularia isso.
Para pesos mais finos que não cabem de forma prática em fatias, o gerador de
números aleatórios aceita pares explícitos número:peso.
Quantas fatias continuam legíveis
As fatias encolhem à medida que as entradas aumentam, e os rótulos são desenhados ao longo do raio, por isso há um limite prático bem abaixo de qualquer limite técnico.
- Até 12 — confortável, os rótulos se leem num relance
- 12 a 20 — legível, mas nomes longos começam a ficar apertados
- 20 a 30 — utilizável apenas para rótulos curtos
- Acima de 30 — a roda continua funcionando e o sorteio continua justo, mas ninguém consegue lê-la enquanto gira
Rótulos com mais de 18 caracteres são cortados com reticências para caberem na sua fatia. Se a sua lista for longa o suficiente para tornar a roda ilegível, o escolhedor de nomes faz o mesmo trabalho sem o espetáculo.
Acessibilidade e movimento
A roda respeita prefers-reduced-motion. Se o seu sistema pedir movimento
reduzido, a animação do giro é omitida e o vencedor aparece imediatamente. O
resultado é idêntico em qualquer caso, porque o sorteio nunca dependeu
da animação.
O vencedor também é anunciado em uma região ativa, para que os leitores de tela o leiam em voz alta sem que você precise procurá-lo.
Onde uma roda de escolha é usada
- Decidir — almoço, filme, qual tarefa
- Transmissões ao vivo e salas de aula — o giro é o objetivo; as pessoas assistem
- Sorteios — um sorteio visível parece mais justo para o público do que um número aparecendo
- Quebra-gelos — quem responde à próxima pergunta