Dev Tools

Embaralhar linhas

Reordene linhas ao acaso (Fisher-Yates) para listas e sorteios locais.

Embaralhar linhas

Como usar Embaralhar linhas

Embaralhar dados ao acaso é mais difícil do que parece. O algoritmo mais ingênuo — gerar um número aleatório para cada elemento e reordenar por esse valor — produz distribuições enviesadas em que certas posições aparecem com mais frequência do que deveriam. O Fisher-Yates shuffle, formalizado por Ronald Fisher e Frank Yates em 1938 e popularizado na versão computacional por Richard Durstenfeld em 1964, resolve isso de forma elegante: percorre a lista de trás para frente e troca cada elemento com um escolhido ao acaso entre os ainda não processados. O resultado é uma permutação verdadeiramente uniforme em O(n).

A qualidade da aleatoriedade depende do gerador usado. O Math.random() dos motores JavaScript modernos usa algoritmos como xorshift128+ e produz números suficientemente imprevisíveis para casos de uso comuns: embaralhar cartões de estudo, randomizar a ordem de perguntas, criar amostras para testes manuais. Para sorteios com requisitos legais ou de auditoria — rifas, competições esportivas, decisões de governança — a fonte correta é a Web Crypto API: window.crypto.getRandomValues() usa entropia do sistema operacional e é criptograficamente forte.

Existe um paradoxo interessante na percepção humana de aleatoriedade. Quando a Spotify lançou o shuffle aleatório real em suas playlists, os usuários reclamavam que não funcionava — porque músicas do mesmo artista apareciam em sequência com frequência, o que é estatisticamente esperado numa distribuição uniforme. Para parecer mais aleatório para as pessoas, a Spotify teve que tornar o shuffle deliberadamente menos aleatório, garantindo maior espaçamento entre artistas. A percepção humana de acaso é profundamente não uniforme.

Uso

alfa
beta
gamma → ordem aleatória a cada embaralhada

Perguntas frequentes

Para que serve esta ferramenta?

Ela roda 100% no seu navegador: útil para validar, formatar ou converter dados no dia a dia de desenvolvimento.

Meus dados são enviados a algum servidor?

O processamento é feito localmente via JavaScript. Não armazenamos o conteúdo que você cola nas caixas de texto.

Posso usar em produção ou para dados reais?

Use por sua conta e risco. Para segredos (senhas, tokens), prefira ambientes controlados e políticas da sua empresa. E lembre sempre de revisar os conteúdos gerados. Nunca confie cegamente nas coisas que vê na internet.

Continue nas Dev Tools

Ferramentas relacionadas para acelerar tarefas comuns de desenvolvimento.