Ir para o conteúdo

Sorteador de times e grupos

Cole os nomes e diga em quantos times dividir — ou de quantas pessoas cada time deve ser. A lista é embaralhada pelo gerador criptográfico do seu navegador e repartida em grupos do mesmo tamanho, com a sobra distribuída.

Um nome por linha. Numa linha só, separe por vírgula. Repetir um nome põe a mesma pessoa em dois times — é como se marca o coringa.

De 1 a 12 times

A divisão roda no seu navegador — cada toque embaralha tudo de novo.

A divisão 4 + 4 + 3 Exemplo — 11 pessoas em 3 times · 2 times de 4 e o resto de 3

Quem caiu em cada time

Time 1Iara · Gabi · João · Elisa4
Time 2Bruno · Felipe · Kelly · Carla4
Time 3Heitor · Diego · Ana3

O botão de rodadas leva a sessão inteira, com a hora e a lista de cada divisão — é o que responde a "e se você tivesse sorteado até dar no time que queria?".

Divisão sorteada dentro do seu navegador, com crypto.getRandomValues. A sobra vai para os primeiros times: ninguém fica de fora, e a soma dos times é a sua lista inteira.

Como melhorar esta calculadora?

Faltou uma verba, o número saiu diferente ou alguma palavra ficou confusa? Escreva.

Escrever uma sugestão →

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

336×280 · in-content

Por que a sobra não pode virar gente de fora

Onze pessoas, três times. A conta que quase toda ferramenta parecida faz é 11 ÷ 3 = 3, monta três times de três e some com as duas pessoas que sobraram. Na tela fica bonito — três times iguais —, e na quadra sobram dois adolescentes esperando alguém perceber. Esse é o erro, e é o único que importa nesta página.

A divisão certa é 4 + 4 + 3: o resto da divisão é repartido um a um entre os primeiros times, nunca acumulado num só e nunca descartado. Duas propriedades saem daí, e elas são o contrato da ferramenta:

  • A união dos times é exatamente a sua lista. Ninguém some e ninguém é clonado — as parcelas somam o total, e é por isso que o resultado aparece escrito como soma no alto da tela, e não como uma lista solta de times.
  • Os tamanhos nunca diferem em mais de 1. Não existe 5 + 5 + 1: se um time ficaria com o dobro do outro, é porque a divisão está errada, não porque o mundo é assim.

A mesma regra vale no modo "quantos por time", e ali ela surpreende mais. Dez pessoas em grupos de quatro não viram 4 + 4 + 2 — viram 4 + 3 + 3. O tamanho que você digitou é um alvo, e um grupo de dois ao lado de dois grupos de quatro é exatamente o desequilíbrio que você estava tentando evitar quando escolheu o tamanho.

Uma consequência prática que vale saber antes de a partida começar: como a sobra vai sempre para os primeiros times, quando os tamanhos são desiguais é o Time 1 que tem o jogador a mais. Se isso importa no seu jogo, é ali que entra o goleiro, o juiz ou quem vai revezar.

De onde vem o acaso desta divisão

A ordem das duas operações é o que faz o sorteio existir: a lista inteira é embaralhada primeiro, e só depois cortada em times. Cortar a lista na ordem em que ela foi colada e chamar isso de sorteio é um defeito que passa despercebido porque os tamanhos ficam certos — 4 + 4 + 3, tudo somando —, só que os quatro primeiros nomes que você digitou continuam juntos em todas as rodadas.

O embaralhamento é Fisher-Yates, e cada troca dele pede um número ao crypto.getRandomValues() do seu navegador, que vem do gerador do próprio sistema operacional — o mesmo que produz chaves criptográficas. Não há semente, não há relógio, não há contador.

Há um segundo cuidado, e ele é onde a maioria dos sorteadores erra sem que ninguém perceba. O gerador entrega um número entre 0 e 4.294.967.295 (são 232 valores), e para virar uma posição da sua lista o caminho óbvio é tirar o resto da divisão com %. Quando o tamanho da lista não divide 232 — e quase nunca divide —, sobra uma cauda incompleta, e os primeiros nomes passam a sair um tiquinho mais que os últimos: é o viés de módulo. Numa lista de 10 a distorção é invisível; num sorteio de 1.000 é a diferença entre justo e não justo. O motor deste site descarta a cauda em vez de dobrá-la, e é o mesmo motor do Sorteador de números, do Cara ou coroa e das demais páginas de sorteio.

Vale nomear ainda o erro mais copiado da internet, porque ele aparece em quase todo tutorial de "dividir array aleatoriamente": sort(() => Math.random() - 0.5) não embaralha. Um comparador incoerente faz o algoritmo de ordenação percorrer caminhos que dependem da implementação, e a distribuição que sai é visivelmente torta — algumas pessoas terminam quase sempre no mesmo time.

Na quadra e na sala de aula

Os dois modos existem porque duas cabeças diferentes chegam aqui, e cada uma já sabe a resposta que quer.

  • Pelada, vôlei, queimada. Quem organiza jogo pensa em times: "somos 11, faz dois times". Modo "quantos times", número 2, e a divisão sai 6 + 5. A tela mostra a soma antes dos nomes justamente para o grupo inteiro conferir de longe que ninguém ficou de fora — é a pergunta que aparece toda vez.
  • Trabalho em grupo, dinâmica, oficina. Quem organiza sala pensa em tamanho: "grupos de 4, porque são quatro tarefas". Modo "quantos por time", número 4, e a turma de 26 vira sete grupos — cinco de 4 e dois de 3, sem nenhum grupo de um aluno só.
  • Rodízio e revezamento. Dividir uma vez e jogar a tarde inteira com os mesmos times é o que faz o time perdedor desistir. Toque em Dividir de novo entre as partidas: cada rodada embaralha tudo, e a lista permanece no campo.
  • Chaveamento de torneio. Aqui o que se divide não são pessoas, são duplas ou equipes já formadas — cole o nome de cada equipe numa linha e divida em grupos. Vale a mesma regra da sobra, que é o que evita o grupo da morte com um time a mais.

Se o que você precisa não é repartir e sim tirar alguém, a página é outra: o Sorteador de nomes sorteia ganhadores de uma lista de nomes, o Sorteador online faz o mesmo com qualquer lista e ainda embaralha a ordem inteira, e a Roleta de nomes gira uma roda na frente de todo mundo, que é o formato certo quando há plateia. As demais estão em geradores, e as contas do dia a dia em calculadoras de utilidades.

Quando os times precisam ser parelhos de verdade

Aqui vale ser honesto, porque é onde uma ferramenta de sorteio costuma prometer o que não pode cumprir: esta página sorteia, ela não sabe quem joga bem. Times de tamanho igual não são times de força igual. Se os três melhores jogadores caírem no mesmo lado, a divisão foi perfeitamente aleatória e o jogo, perfeitamente sem graça.

A saída prática não é uma opção escondida no formulário, é um método, e ele leva trinta segundos: sorteie dentro de faixas.

  1. Separe as pessoas em faixas de nível parecido — os mais fortes, os intermediários, os que estão começando. Três faixas costumam bastar; quem conhece o grupo faz isso de cabeça.
  2. Cole só a primeira faixa e divida no número de times que você quer. Anote o resultado.
  3. Cole a faixa seguinte, divida no mesmo número de times, e junte cada grupo a um time da rodada anterior. Repita até acabar as faixas.

O que esse método preserva é o que interessa: ninguém escolhe amigo. A parte subjetiva — quem é forte — fica visível e combinada antes, na frente do grupo; a parte que gera discussão — quem joga com quem — continua sorteada. É o contrário do "capitão escolhe", em que a parte subjetiva decide tudo e sempre sobra a mesma pessoa por último.

Se o grupo empacar em qualquer decisão binária no meio disso — quem começa, quem escolhe o lado do campo, quem fica com o colete —, o Cara ou coroa resolve num toque e sem discussão.

Perguntas frequentes

O que acontece quando sobra gente?

A sobra entra nos primeiros times, uma pessoa em cada — e ninguém fica de fora. Onze pessoas em três times dão 4, 4 e 3, nunca 3, 3, 3 com duas pessoas encostadas na parede. É o erro mais comum das ferramentas parecidas: elas dividem, arredondam para baixo e simplesmente descartam o resto da lista sem avisar. Aqui a divisão aparece somada na tela (4 + 4 + 3) justamente para você conferir de relance que as parcelas fecham no total.

Como faço um sorteador de grupos com tamanho fixo?

Troque o modo para "quantos por time" e diga o tamanho: em vez de dizer que quer três grupos, você diz que quer grupos de quatro. A página calcula quantos grupos cabem e reequilibra. Repare que ela reequilibra mesmo: dez pessoas em grupos de quatro viram 4, 3 e 3, e não 4, 4 e 2. O tamanho que você digita é um alvo, não uma cota fechada — o que a ferramenta protege é o equilíbrio entre os grupos.

A divisão é mesmo aleatória?

É. A lista inteira é embaralhada com Fisher-Yates antes de qualquer corte, e cada troca do embaralhamento vem do gerador criptográfico do seu navegador (crypto.getRandomValues), o mesmo que cria chaves. Só depois de embaralhada é que a lista é fatiada nos times. Não há semente, não há relógio e não há o resto de divisão que faria os primeiros nomes caírem no time 1 mais vezes que os outros.

Dá para equilibrar os times por habilidade?

A página sorteia; ela não sabe quem joga bem. Sortear tamanho igual não é sortear força igual, e fingir o contrário seria mentira. O que funciona na prática é sortear por faixas: separe os jogadores em grupos de nível parecido, sorteie primeiro os mais fortes entre os times, depois a faixa seguinte, e assim por diante. Cada rodada é uma divisão nova, e o resultado sai equilibrado sem ninguém escolher amigo.

A minha lista é enviada para algum servidor?

Não. Não há requisição de rede em nenhum ponto: o gerador é do navegador, a conta é do navegador e as rodadas vivem só na memória da aba — recarregar a página zera tudo. Até o botão de compartilhar respeita isso: os nomes vão depois do # do endereço, e o que vem depois do # nunca é enviado ao servidor nem entra em log de acesso. É por isso que dá para colar uma lista com nomes de gente aqui.

Quanta gente cabe, e quantos times?

A lista aceita até 200 nomes e a tela desenha até 12 times. O limite dos times é de apresentação: acima disso a divisão deixa de ser conferível de relance, que é para o que ela serve. Se você precisa de muitos grupos pequenos — uma turma inteira em duplas, por exemplo —, divida em duas rodadas, ou numere os participantes e use o sorteador de números.