Sorteador de Nomes: escolher 1 de N é um problema diferente de embaralhar N
Sortear um único nome de uma lista é, matematicamente, um problema
mais simples do que embaralhar a lista inteira (o algoritmo Fisher-Yates
já documentado nas páginas de Gerador de
Senha e Embaralhador deste site):
basta sortear um único índice aleatório entre 0 e o tamanho da lista
menos um, via Math.floor(Math.random() * lista.length),
e retornar o item naquela posição — sem precisar reordenar nem tocar
nos demais itens da lista. É a mesma razão pela qual esta ferramenta
usa Math.random(), não uma fonte de aleatoriedade
criptograficamente segura: escolher um nome para uma dinâmica de
grupo, sorteio de brinde informal ou distribuição de tarefa não tem
nenhuma implicação de segurança que justifique o custo adicional de
uma CSPRNG.
Por que sortear repetidamente não garante distribuição uniforme perfeita a curto prazo
Um ponto que gera confusão real sobre aleatoriedade: sortear o mesmo nome duas vezes seguidas, numa lista de 10 nomes, não é evidência de que o sorteio está "quebrado" ou viciado. Cada sorteio é estatisticamente independente do anterior — a probabilidade de qualquer nome específico sair é sempre 1/N a cada rodada, e eventos independentes podem, por acaso, produzir sequências que "parecem" não aleatórias para intuição humana (o cérebro humano tende a esperar alternância mais frequente do que a aleatoriedade genuína realmente produz — o mesmo viés cognitivo por trás da crença de que um resultado de cara-ou-coroa "deveria" alternar mais do que estatisticamente acontece).
Sortear sem repetição: um problema diferente, coberto por outra ferramenta
Para cenários onde cada nome só deveria ser sorteado uma vez até que todos tenham saído (um sorteio de rodízio, por exemplo, em vez de um sorteio "com reposição" independente a cada clique), o algoritmo correto é diferente — o mesmo problema de amostragem sem reposição já documentado na página de Números Aleatórios deste site, que resolve o problema construindo a lista completa embaralhada uma vez, em vez de sortear index por index a cada chamada.