Sorteador de Nomes — Roleta, Divisão de Times e Sorteios Justos
Cole uma lista de nomes e gire uma roleta colorida para sortear o vencedor — ou use o modo Selecionar N para sortear vários de uma vez, ou o modo Times para dividir todos em grupos aleatórios. É possível remover o vencedor e girar novamente para o segundo lugar. Como o sorteio roda totalmente no seu dispositivo, não há limite de linhas em servidor: listas com 10,000+ nomes funcionam sem problemas. A seleção utiliza o algoritmo Fisher–Yates com gerador criptográfico do sistema e amostragem por rejeição, garantindo probabilidades perfeitamente iguais para cada nome — e não apenas aproximadamente iguais.
Casos de uso
Como sortear um nome aleatório com a roleta
Digite ou cole um nome por linha — alunos, colegas de equipe, participantes de sorteio. A lista fica salva neste navegador automaticamente.
Clique em Girar. A roleta acelera e desacelera suavemente ao longo de 4–6 segundos, parando no nome escolhido por aleatoriedade criptográfica.
O nome indicado pelo ponteiro aparece em destaque e é registrado no histórico de sorteios com data e hora.
Remova o vencedor e gire de novo para o segundo lugar; mude para Selecionar N para sortear vários nomes de uma vez; ou use o modo Times para distribuir todos os nomes em 2+ grupos aleatórios de tamanho equilibrado e copie a lista inteira.
Perguntas frequentes
- Minha lista de nomes é enviada para algum servidor?
- Não. A lista fica salva exclusivamente no armazenamento local do seu navegador — nada é enviado para um servidor, e ao limpar a lista ela é removida em definitivo.
- A roleta é realmente justa?
- Sim. O ângulo em que a roleta para vem de crypto.getRandomValues — o mesmo gerador utilizado em segurança criptográfica — com amostragem por rejeição para evitar desvios de módulo. Cada fatia possui probabilidade idêntica.
- Quantos nomes posso adicionar?
- Não há limite imposto. O sorteio realiza apenas uma passagem sobre uma lista na memória do seu navegador em vez de fazer requisições a servidores, permitindo colar, girar e misturar listas com 10,000+ nomes tranquilamente — o único limite prático é a memória do seu dispositivo. Acima de alguns milhares de nomes as fatias ficam muito estreitas para ler, sendo recomendável usar o modo Selecionar N ou Times.
- Como dividir uma lista em times aleatórios?
- Mude para o modo Times, defina o número de equipes e clique em Dividir. Um único embaralhamento Fisher–Yates é distribuído de forma alternada entre os times, garantindo que cada pessoa fique em exatamente um grupo e que as equipes nunca difiram por mais de um integrante. Sortear individualmente várias vezes não garante isso — a mesma pessoa pode sair repetida.
- A mesma pessoa pode vencer duas vezes?
- Apenas se ela continuar na roleta. Use "Remover e girar novamente" após cada sorteio para garantir vencedores exclusivos rodada após rodada.
- Quantos nomes a roleta consegue exibir?
- Não há um limite rígido. Os nomes continuam fáceis de ler com até cerca de 30–40 nomes; além disso, as fatias ficam muito finas — o modo Selecionar N lida melhor com listas grandes.
- O que o modo Selecionar N faz de diferente?
- Ele dispensa a roleta e sorteia N nomes distintos de uma só vez a partir de uma cópia embaralhada criptograficamente da sua lista — instantâneo e garantido sem duplicatas na mesma rodada.
- Minha lista continuará salva amanhã?
- Sim, no mesmo dispositivo e navegador — ela fica guardada no armazenamento local entre as sessões. Por motivos de privacidade, ela não é sincronizada com outros dispositivos.
O que torna um sorteio realmente justo (e as três falhas mais comuns)
A maioria dos sorteadores parece aleatória sem realmente ser. As três falhas abaixo são invisíveis a olho nu — a roleta gira normalmente e um nome é selecionado —, e é por isso que qualquer sorteio importante deve especificar o método adotado.
| Método | Como sorteia | Viés | Veredito |
|---|---|---|---|
| Math.random() % n | Multiplica um número decimal de ponto flutuante e calcula o resto da divisão | Viés de módulo — índices baixos saem com frequência ligeiramente maior, e o gerador não é criptográfico | Aceitável para cara ou coroa, inadequado para prêmios |
| Embaralhamento ingênuo (troca cada item com outro qualquer) | Percorre a lista trocando pares aleatórios | Comprovadamente não uniforme: certas ordens ocorrem mais vezes do que outras | Parece justo, mas não é |
| Embaralhamento Fisher–Yates / Durstenfeld | Percorre a lista de trás para frente, trocando cada item com um elemento na mesma posição ou anterior | Nenhum — todas as permutações têm probabilidade idêntica | O algoritmo correto utilizado desde 1964 |
| crypto.getRandomValues com amostragem por rejeição | Coleta bytes do pool de entropia do sistema operacional e descarta valores que distorceriam a faixa | Nenhum, e impossível de prever mesmo conhecendo os sorteios anteriores | O método utilizado por este sorteador |
- A amostragem por rejeição é a etapa que a maioria dos sistemas ignora: se você mapear 256 valores de bytes aleatórios em uma lista de 10 nomes, os primeiros 6 nomes teriam uma chance ligeiramente maior. Descartar os valores fora da faixa exata é o que elimina essa distorção.
- A capacidade aqui é limitada pelo seu próprio navegador, e não por cotas de servidor — listas com 10,000+ nomes podem ser coladas e sorteadas normalmente, já que todo o sorteio é uma única passagem em array.
- Remover o vencedor e girar novamente proporciona um sorteio legítimo de segundo colocado. O modo Selecionar N, por sua vez, sorteia vários nomes distintos em um único embaralhamento, sendo o método ideal para dividir turmas em equipes — sortear repetidas vezes pode gerar nomes repetidos a menos que sejam excluídos a cada rodada.
Privacidade garantida. Os nomes são sorteados inteiramente no seu navegador e a lista fica salva apenas no armazenamento local deste dispositivo — nada é enviado a um servidor.