このツールについて
シークレットサンタ ジェネレーターは、全員がちょうど1つの贈り物を贈り、ちょうど1つを受け取り、誰も自分の名前を引かないように、贈り物交換のグループをランダムにペアリングします。1行に1つの名前を貼り付け、必要な除外ペア(例えばカップルが互いに一致しないように)を追加して、割り当てをクリックします。
内部では、循環的な割り当てを使って有効な完全順列を構築します。名前はブラウザの暗号乱数生成器(crypto.getRandomValues)を利用したFisher-Yatesシャッフルでシャッフルされ、シャッフルされた順序で各人が循環の次の人に贈り、最後の人が最初の人に贈ります。単一の循環は自己一致がなく、全員が一度ずつ贈って受け取ることを保証します。除外を尊重するため、ツールはルールを破らない配置が見つかるまで最大数千回まで再シャッフルします。制約を満たせない場合は、悪いリストを返す代わりにその旨を伝えます。
これは主催者向けの単一デバイスツールです。贈り手から受け手への完全なリストを画面に表示するため、非公開で実行してください。すべてはブラウザ内でローカルに行われます。何もアップロードされずオフラインで動作します。除外は1行に2つの名前をカンマ、コロン、ダッシュで区切って入力してください(例:「Alex, Jordan」)。