CodeKitHub
Português
Ferramentas geradoras

Randomizador de listas gratuito

Cole uma lista — nomes, tarefas, participantes de um sorteio, o que for — um item por linha, e embaralhe-a em uma ordem justa e aleatória usando um verdadeiro embaralhamento Fisher-Yates. Ative o modo de sorteio de vencedores para extrair apenas N itens aleatórios, útil para escolher um vencedor de sorteio ou atribuir uma ordem aleatória sem revelar toda a lista embaralhada.

O que é esta ferramenta?

Um randomizador de listas reordena um conjunto de itens em uma sequência aleatória, ou extrai um subconjunto aleatório dela. A parte difícil é fazer isso sem viés: uma abordagem ingênua, como ordenar um array com uma função de comparação aleatória, produz uma distribuição enviesada em que algumas ordens são muito mais prováveis que outras.

Esta ferramenta usa o algoritmo de embaralhamento Fisher–Yates (Durstenfeld), o método padrão para obter uma permutação aleatória comprovadamente uniforme — cada ordem possível da sua lista tem a mesma probabilidade de aparecer.

Por que usar?

  • Embaralhamento genuinamente sem viés — Fisher–Yates, e não o antipadrão comum sort(() => Math.random() - 0.5), que distorce os resultados.
  • Modo de sorteio de vencedores: extraia exatamente N itens aleatórios em vez de embaralhar a lista inteira, ideal para rifas e sorteios.
  • Remoção opcional de duplicados antes de embaralhar, para listas que possam ter repetições acidentais.
  • Funciona com qualquer texto — nomes, tarefas, bilhetes, prêmios — um item por linha.
  • Privado: o embaralhamento acontece inteiramente no seu navegador, nada é enviado.

Como usar

  1. Cole sua lista na caixa, um item por linha.
  2. Opcionalmente, marque "remover duplicados antes de embaralhar" se a lista puder conter repetições.
  3. Para uma reordenação completa, basta clicar em Embaralhar. Para sortear vencedores, marque a opção de N itens e defina quantos sortear.
  4. Copie o resultado — clique em Embaralhar novamente a qualquer momento para uma nova ordem aleatória ou um novo sorteio.

Exemplo

Entrada

Alice
Bob
Charlie
Diana
Ethan

Resultado

Uma lista reordenada aleatoriamente, como Charlie, Ethan, Alice, Diana, Bob — diferente a cada clique em Embaralhar.

Com o modo de sorteio de vencedores definido para 2, a mesma entrada pode gerar apenas Ethan e Alice — um sorteio aleatório de 2 itens, não um recorte dos 2 primeiros de uma ordem já embaralhada.

Por que um embaralhamento ingênuo produz resultados enviesados

sort(() => Math.random() - 0.5) é um truque comum que parece correto, mas não é: ele depende de o algoritmo de ordenação chamar o comparador um número específico de vezes em um padrão específico, e as implementações reais de ordenação não garantem isso. O efeito prático é um embaralhamento em que certas ordens aparecem com mais frequência que outras — sutil o suficiente para passar despercebido a um olhar casual, mas estatisticamente mensurável ao longo de muitas execuções.

O Fisher–Yates contorna o problema por completo: em vez de pedir a um algoritmo de ordenação que produza aleatoriedade indiretamente, ele troca diretamente cada posição por uma posição restante aleatória exatamente uma vez, o que é comprovadamente uniforme independentemente da implementação de ordenação da linguagem subjacente.

Gerador de Números Aleatórios · Gerador de UUID

Perguntas frequentes

Por que não usar simplesmente array.sort(() => Math.random() - 0.5)?

Essa linha é um antipadrão bem conhecido: o sort() do JavaScript não garante que cada par de elementos seja comparado o mesmo número de vezes, então a ordem resultante fica mensuravelmente enviesada em favor de certas permutações — alguns itens acabam com mais chance de ficar perto do início ou do fim do que a aleatoriedade real produziria. O Fisher–Yates evita isso completamente por construção, e é o algoritmo que esta ferramenta realmente implementa.

A ordem do embaralhamento é realmente sem viés?

Sim. O Fisher–Yates percorre a lista uma vez e, em cada etapa, troca o item atual por um item escolhido de forma uniformemente aleatória entre a parte ainda não embaralhada. Isso é matematicamente comprovado para produzir cada ordem possível com igual probabilidade, dada uma boa fonte de aleatoriedade (o Math.random() do JavaScript).

Qual é a diferença entre o modo de embaralhamento e o modo de sorteio de vencedores?

O modo de embaralhamento reordena todos os itens da sua lista e mostra todos eles, apenas em uma nova ordem. O modo de sorteio de vencedores extrai apenas N itens aleatórios e mostra apenas esses — útil quando você quer selecionar um número fixo de vencedores ou amostras sem revelar toda a lista reordenada.

Posso usar isso para um sorteio real com prêmios?

Sim, para sorteios e rifas informais isso funciona bem, já que a aleatoriedade é genuinamente uniforme. Para um sorteio legalmente regulado com prêmios em dinheiro, verifique as regulamentações locais — algumas jurisdições exigem um processo de sorteio específico e auditável.

Remover duplicados altera minha lista original?

Não — a deduplicação afeta apenas o resultado embaralhado, e somente quando a caixa está marcada. Sua lista de entrada permanece exatamente como você a digitou, então você pode ativar ou desativar a opção e embaralhar novamente sem precisar redigitar nada.

Ferramentas relacionadas