UTILS.
100% no navegador
🎅

Gerador de Amigo Secreto

Atribua aleatoriamente pares de Amigo Secreto para que todos deem e recebam uma vez, com pares de exclusão opcionais. Roda inteiramente offline no seu navegador.

Ferramenta de organizador de um único dispositivo — ela revela a lista completa, então rode em privado.
— a saída aparece aqui —

Sobre esta ferramenta

O Gerador de Amigo Secreto emparelha aleatoriamente um grupo para uma troca de presentes de modo que todos deem exatamente um presente e recebam exatamente um — e ninguém tire o próprio nome. Cole um nome por linha, adicione quaisquer pares de exclusão que precisar (por exemplo, para que um casal não seja emparelhado entre si) e clique em Atribuir.

Nos bastidores, ele constrói um derangement válido usando uma atribuição cíclica: os nomes são embaralhados com um embaralhamento Fisher-Yates movido pelo gerador criptográfico do navegador (crypto.getRandomValues), depois cada pessoa na ordem embaralhada dá para a próxima pessoa ao redor do ciclo, com a última dando para a primeira. Um único ciclo garante que não haja auto-correspondências e que todos deem e recebam uma vez. Para honrar as exclusões, a ferramenta reembaralha até alguns milhares de vezes até encontrar um arranjo que não quebre nenhuma regra; se suas restrições não puderem ser satisfeitas, ela avisa em vez de retornar uma lista ruim.

Esta é uma ferramenta de um único dispositivo para o organizador — ela mostra a lista completa de quem dá para quem na tela, então rode em privado. Tudo acontece localmente no seu navegador: nada é enviado e funciona offline. Insira exclusões como dois nomes por linha separados por vírgula, dois-pontos ou traço (por exemplo, "Alex, Jordan").

Perguntas frequentes

Alguém pode ser designado a dar um presente para si mesmo?
Nunca. A atribuição é um único derangement cíclico, o que garante matematicamente que nenhuma pessoa seja emparelhada consigo mesma e que todos deem uma vez e recebam uma vez.
Como impeço que um casal seja emparelhado?
Adicione uma linha de exclusão com ambos os nomes separados por vírgula, dois-pontos ou traço, ex. "Alex, Jordan". As exclusões são de mão dupla, então nenhuma das pessoas pode tirar a outra. Adicione quantas linhas de exclusão precisar.
E se minhas exclusões não puderem ser satisfeitas?
A ferramenta reembaralha até alguns milhares de vezes procurando um arranjo válido. Se nenhuma atribuição puder respeitar cada exclusão (por exemplo, regras sobrepostas demais), ela relata que as restrições são impossíveis em vez de retornar uma lista inválida.
O sorteio é privado e funciona offline?
Esta é uma ferramenta de organizador que mostra a lista inteira numa tela, então rode onde os jogadores não possam ver. Ela roda inteiramente no seu navegador com o gerador criptográfico local — nada é enviado e funciona offline.

Mais ferramentas