ToolActToolAct

Roleta de Decisão

Deixe a roleta decidir por você, adeus indecisão

Lista de Opções8/15
🍕 吃火锅
🎮 打游戏
📺 追剧
📚 看书
🚶 散步
🛌 睡觉
🎵 听音乐
🧹 做家务
Histórico de prêmios

Sem registros ainda — gire a roleta!

O que é uma Roleta de Decisão?

A roda de decisão seleciona aleatoriamente uma opção de uma lista e transforma uma escolha pequena em um processo visível e compartilhado. Ela é útil em aulas, atividades de equipe, escolha de comida, ordem de apresentações, sorteios leves, brainstorming e situações em que várias opções são aceitáveis. Seu valor é reduzir fadiga de decisão e tornar a seleção transparente. Ela não substitui julgamento quando opções têm riscos, custos, regras de justiça ou responsabilidades diferentes. Para sorteios sérios, lista de participantes, pesos, exclusões e registro devem ser definidos antes de girar para que o resultado seja explicável. Funciona melhor em decisões de baixo risco.

Como usar

Como usar

  1. Digite o nome de uma opção no campo de entrada, pressione Enter ou clique em Add
  2. Adicione várias opções (até 15), cada uma com no máximo 20 caracteres
  3. Clique no botão central 'SPIN'; a roda começa a girar
  4. Aguarde a roda parar para ver o resultado selecionado aleatoriamente

Dicas de imparcialidade

  • Mantenha as opções curtas e comparáveis para que todos consigam ler a roda com facilidade antes de girar.
  • Para decisões importantes, combine a lista de opções antes de girar e evite alterar entradas após um resultado desfavorável.

Casos de uso

Girar uma roleta visível para escolhas em grupoAdicione opções uma a uma, pressione Enter para adicionar rapidamente e gire a roleta quando uma aula, reunião, live ou decisão de família precisar de uma escolha aleatória transparente. O resultado é escolhido antes da animação começar usando crypto.getRandomValues, então a curva de desaceleração é decorativa e a mesma semente reproduzida offline cairia na mesma fatia. Use isso para ensaiar uma rodada prática reproduzível antes de ir ao vivo.
Manter a lista de opções pequena o suficiente para ser lidaA roleta limita as entradas a 15 e trunca texto longo nas fatias, o que a torna melhor para nomes, tarefas, tópicos, recompensas, tarefas domésticas ou escolhas curtas de restaurante do que descrições longas. Com duas entradas, a roleta funciona como cara ou coroa, enquanto quinze fatias cobrem apenas 24 graus de arco cada, então rótulos com mais do que algumas palavras ficam difíceis de ler. Mantenha as opções curtas o suficiente para que o público consiga lê-las durante o giro.
Resetar entre decisões não relacionadasUse reset ou recarregue as opções padrão antes de uma nova rodada para que entradas antigas, cores, rotação e resultado anterior não confundam a próxima escolha. Cada giro sorteia um resultado independente e identicamente distribuído do conjunto de fatias restante, então escolhas consecutivas podem absolutamente se repetir e isso é comportamento uniforme correto, não um bug. Defina a lista de participantes e as regras antes de usar para qualquer coisa pública, pois a roleta não tem registro de vencedores anteriores.
Codificar fatias por cores para que o resultado seja legível na liveAtribua cores contrastantes às fatias para apresentações, sala de aula ou configurações de live para que o público acompanhe em qual opção a roleta pousa sem adivinhar por rótulos truncados. Alternar fatias brilhantes e suaves também ajuda a posição final de repouso a se destacar quando a roleta desacelera, e combinar a cor mais brilhante com o rótulo mais propenso a ser lido incorretamente elimina uma classe de erros na tela antes que aconteçam. Teste o layout no tamanho de tela que seu público verá, pois lives mobile frequentemente cortam as bordas da roleta.
Documentar as regras antes de um sorteio ou rifaQuando um prêmio real, atribuição de turno ou seleção de participantes está envolvido, anote a lista de entradas, exclusões e a data antes de girar para que o resultado possa ser explicado depois. Capture a lista de opções, o carimbo de data/hora do giro e uma captura de tela da fatia em repouso, pois a roleta em si não armazena uma trilha de auditoria e uma reconstrução posterior da mesma lista não reproduzirá o mesmo giro. Trate a captura de tela como o recibo quando a pergunta 'por que esse nome apareceu' surgir no dia seguinte.

Princípio técnico

A roda é um desenho Canvas 2D sobreposto com uma escolha aleatória determinística. Cada fatia é renderizada com ctx.beginPath(); ctx.moveTo(cx, cy); ctx.arc(cx, cy, r, startAngle, endAngle); ctx.fill() onde N opções iguais recebem um arco de 2π/N radianos cada — quinze fatias resultam em 24° de arco cada, o que também explica por que a entrada é limitada a 15 para manter os rótulos legíveis. A fatia vencedora é decidida ANTES da animação: um inteiro sem sinal de 32 bits é sorteado com crypto.getRandomValues(new Uint32Array(1))[0], reduzido módulo N, e esse inteiro é a resposta. A animação então calcula uma rotação-alvo de fullSpins × 2π + (2π − winnerIndex × sliceAngle − sliceAngle/2) para que o ponteiro no topo do canvas termine apontando para o centro da fatia escolhida, e faz a transição dentro de requestAnimationFrame usando uma curva de suavização como easeOutCubic, f(t) = 1 − (1−t)³, ou easeOutBack para o pequeno ultrapassagem que simula uma roda física desacelerando. crypto.getRandomValues é o CSPRNG do Web Crypto (especificado na Web Crypto API), semeado pelo pool de entropia do sistema operacional, então, ao contrário de Math.random, a escolha não pode ser prevista lendo o estado da página. Variantes com peso constroem um array de probabilidade acumulada de tamanho N e fazem busca binária no sorteio aleatório em O(log N). As saídas são inteiramente visuais e efêmeras — nada é registrado, então qualquer trilha de auditoria (timestamp, lista de opções, captura de tela) deve ser capturada externamente antes que a página seja atualizada.

  • Renderização Canvas: cada fatia é ctx.arc(cx, cy, r, startAngle, endAngle) com sliceAngle = 2π / N — 15 opções dão 24° por fatia, que é o limite prático de legibilidade.
  • A seleção do vencedor usa crypto.getRandomValues(new Uint32Array(1))[0] % N — CSPRNG do Web Crypto, semeado pela entropia do SO, adequado para sorteios justos de uso único, mas NÃO para loterias reproduzíveis (sem trilha de auditoria).
  • A animação roda em requestAnimationFrame na taxa de atualização do display (tipicamente 60 Hz) com easeOutCubic f(t) = 1 − (1−t)³ ou easeOutBack para um leve ultrapassagem — a curva é cosmética, o vencedor já foi escolhido.
  • A rotação final é targetRotation = fullSpins × 2π + (2π − winnerIndex × sliceAngle − sliceAngle/2) para que o ponteiro superior caia no centro da fatia, não na borda.
  • O modo de opções com peso constrói um array de soma prefixa dos pesos e usa busca binária para mapear um número aleatório uniforme em uma fatia em O(log N) — equivalente a amostragem por inversa da CDF.
  • O viés do módulo é desprezível quando N ≤ 15 e o sorteio tem 2³² valores de amplitude (viés ≈ N / (2 × 2³²) ≈ 1,7×10⁻⁹), então nenhum loop de rejeição é necessário.
  • Cada giro é i.i.d. — giros consecutivos podem repetir a mesma opção e isso é comportamento uniforme correto, não um bug; deduplicação entre giros requer um registro externo.

Exemplos

Decisão de almoço

Opções: Pizza, Sushi, Hambúrgueres, Tacos, Salada → Girar → Resultado: Sushi

Atividade em equipe

Opções: Boliche, Karaokê, Escape Room, Mini Golfe → Girar → Resultado: Escape Room

Noite de cinema

Opções: Ação, Comédia, Terror, Romance, Ficção Científica → Girar → Resultado: Comédia

Perguntas frequentes

O giro da roleta é realmente aleatório?

Sim. O segmento selecionado é escolhido por crypto.getRandomValues, e depois a roleta é animada para parar nele. O giro visual é só efeito — o resultado é decidido antes. Cada giro é independente dos anteriores.

Todos os segmentos têm a mesma probabilidade?

Sim. Cada opção recebe uma fatia do mesmo tamanho e cada fatia tem a mesma probabilidade. Não há modo ponderado nem enviesado — todas as opções têm a mesma chance de serem sorteadas.

A animação do giro afeta o resultado?

Não. A animação é decorativa — o resultado é calculado primeiro, e depois a roleta gira para mostrá-lo. Mesmo que você interrompa a animação antes do fim, o segmento escolhido é o mesmo.

Posso salvar a roleta entre sessões?

Não. As opções ficam guardadas só durante a sessão atual. Fechar a aba ou atualizar perde a lista. Copie suas opções antes de fechar se precisar reutilizá-las.

Devo usar para tomar decisões importantes?

Use para escolhas em grupo de baixo impacto (almoço, ordem de apresentação, sorteio de pick) em que qualquer opção é aceitável e a aleatoriedade visível evita melindres. Não terceirize decisões em que as consequências variam muito entre as opções — a roleta não consegue avaliar trade-offs.

Por que ela às vezes escolhe a mesma opção duas vezes seguidas?

Cada giro é independente. Com três opções, a probabilidade de duas escolhas iguais seguidas é 1/3 ≈ 33%. Com dez opções, é 10%. A repetição parece estranha, mas é matematicamente esperada em um sorteio genuinamente aleatório.

Minha lista de opções é enviada para algum servidor?

Não. A roleta roda inteiramente no seu navegador. As opções são salvas localmente se você optar; nada é transmitido.