このツールとは?
デレンジメントとは特定の数学的概念で、集合の順列(並べ替え)のうち、どの要素も元の位置に留まらないものを指します。ギフト交換に当てはめると、全員の名前を新しい順序にシャッフルし、誰も自分自身とペアにならないようにすることを意味します——これはまさに公平なシークレットサンタの抽選に必要な制約であり、単純な`array.sort(() => Math.random() - 0.5)`によるシャッフルではそれ自体で保証されないものです。
このツールは、ランダム化されたアルゴリズムでリストを繰り返しシャッフルし、自己割り当ての制約をチェックすることでデレンジメントを生成します。その際、根底の乱数生成には`Math.random()`ではなく`crypto.getRandomValues()`を使用しており、これはこのサイトの[パスワード生成ツール](/password-generator/)や[ランダム文字生成ツール](/random-letter-generator/)で使われているのと同じ暗号学的に安全なソースです。
公開ボタンのデザインは、グループで名前を抽選する際の別の非常に実用的な問題を解決します。すべての割り当てを一度に画面に表示すると、全員分のサプライズが同時に台無しになってしまいます。各人の結果をそれぞれのボタンの後ろに隠すことで、1台のデバイスを回し見したり(あるいは画面を共有したりして)、各自が自分の名前だけを確認できるようになります。
なぜこれを使うのか?
- 職場の忘年会で幹事を頼まれ、LINEグループに9人分の名前を入力するだけで、誰にも自分の名前が当たらないシークレットサンタの組み合わせをその場で作れます。
- 去年、手作業でくじを引いたら妹が自分の名前を引いてしまい気まずかった――今年はこのツールで、自分自身に当たらないことが数学的に保証された抽選をやり直しなく行えます。
- 忘年会の飲み会でスマホを1台だけ回しながら「タップして表示」ボタンを使えば、隣の人に画面をのぞかれずに自分の担当だけをこっそり確認できます。
- 直前に参加者が1人増えたり欠席になったりしても、名前リストを書き換えて「ペアを抽選」を押し直すだけで、サインアップもアプリのインストールも不要で即座に抽選し直せます。
- 会社の個人情報を扱うのが不安――名前も抽選結果もブラウザ内だけで処理され、サーバーには一切送信・保存されないので、社内ルールにも安心して使えます。
使い方
- 各参加者の名前を1行ずつ入力します——最低3つの異なる名前が必要です。
- 「ペアを抽選」をクリックします——ツールが誰も自分自身とペアにならない有効なデレンジメントを計算します。
- 各参加者の行には名前と隠された結果が表示されます——デバイスを回し見するか画面を共有し、各自が自分の「タップして表示」ボタンをクリックして、誰にギフトを贈るかを確認してもらいます。
- 誰かが結果を確認したら、もう一度表示ボタンをクリックして隠すことで、次の人のために画面を準備します。
例
入力
Alice, Bob, Carol, Dave出力
Alice → Carol, Bob → Dave, Carol → Bob, Dave → Alice実行のたびに異なる有効なデレンジメントが生成されます——これは結果の一例です。誰も自分自身に割り当てられていないことに注目してください。これは本当のシークレットサンタの抽選に必要な唯一の厳格な制約であり、単純なランダムシャッフルでは保証されないものです。
デレンジメント vs. 単純なランダムシャッフル
単純なシャッフルとデレンジメントは似ているように見えますが、ギフト交換で本当に安全なのはどちらか一方だけです。
| 方法 | 誰かが自分自身に割り当てられる可能性はあるか? | 「それらしく見える」までやり直すのは公平か? |
|---|---|---|
| 単純なランダムシャッフル | あり——特に小さなグループでは実際に起こり得る | いいえ——悪い結果を手動で拒否すると結果に偏りが生じる |
| デレンジメント(このツール) | なし——構造上、数学的に排除される | 該当なし——有効な結果は既にすべて制約を満たしている |
関連ツール
他のランダム抽選や生成ツールもこちらからお試しください。
スムーズに抽選会を進めるコツ
- 全員が同じ部屋にいるなら、まず参加者リストを声に出して確認してから「ペアを抽選」を押すと、抽選後に名前の誤字で結果が確認できなくなるトラブルを防げます。
- リモートワークのチームでは、画面共有で名前リストを見せながら1人ずつ順番に自分の端末で開いた同じページの「タップして表示」を押してもらう方法が安全です。
- 夫婦や恋人同士が同じグループにいる場合、当たっても問題ない関係であれば気にする必要はありませんが、避けたいなら結果を見て手動で調整するか、片方を外して個別に割り当てましょう。
- 抽選をやり直すたびに完全に新しい組み合わせが作られるため、「今回はしっくりこない」という理由だけで何度も引き直すと、特定の組み合わせを避けるための不正な操作になりかねない点には注意してください。
よくある質問
同じ名前が2回入力された場合はどうなりますか?
このツールは抽選を行う前にすべての名前が一意であることを要求します——重複した行を検出すると、まずリストを修正するよう求めます。まったく同じ名前を持つ2人の参加者がいると、それぞれの結果を区別することが不可能になるためです。
誰かが自分の名前を引いてしまうことはありますか?
いいえ——このツールは特にデレンジメントを計算します。これは、どの要素(人)も自分自身の元の位置にマッピングされないという数学的な性質を持つシャッフルです。この保証はアルゴリズムによって強制されるものであり、単純なランダムシャッフルのように運任せにはなりません。
必要な最低人数は何人ですか?
3人です。2人だけの場合、単純に毎回お互いに割り当てられる以外にデレンジメントは成立せず、それでは意味のあるランダムさとは言えないため、このツールは最低3人の参加者を必要とします。
全員が同じ画面を見ている場合、どうやって結果のプライバシーを保ちますか?
各参加者の結果は一度にすべて表示されるのではなく、それぞれの「タップして表示」ボタンの後ろに隠されています。デバイスを(または画面を共有しながら)順番に各自に渡し、自分の行だけを表示・確認してもらい、次の人に渡す前にもう一度クリックして隠します。
名前や抽選結果はサーバーに送信されますか?
いいえ。名前の読み取り、デレンジメントの計算、表示ボタンの表示まで、すべてがブラウザ内で完結します。何もアップロードされず、タブを閉じるとすべてが消去されるため、抽選履歴がどこかに残ってサプライズが誤って台無しになる心配もありません。
カップルや夫婦がお互いに当たらないように除外できますか?
現在のバージョンには特定のペアを除外する機能はなく、デレンジメントは「自分自身に当たらない」ことだけを保証します。夫婦が互いに当たるのを避けたい場合は、抽選をやり直して該当ペアが分かれる結果が出るまで「ペアを抽選」をクリックするか、片方をリストから外して別途手動で割り当てる必要があります。
ページを閉じたり更新したりすると抽選結果はどうなりますか?
結果は保存されないため、タブを閉じたりページを再読み込みしたりすると消えてしまいます。全員が確認を終える前に誤って閉じてしまった場合は、同じ名前リストを入力し直して「ペアを抽選」をクリックすれば新しい抽選を作れますが、前回と同じ組み合わせになるとは限りません。
何人まで一度に抽選できますか?
参加人数に明確な上限は設けられていません。3人以上であれば、大家族や大人数のオフィスチームでも同じように動作しますが、人数が増えるほど1台のデバイスを回して確認する時間は長くなります。
同じ人が毎年同じ相手に当たることはありますか?
このツールは実行のたびに完全に独立した抽選を行うため、前回の抽選結果を記憶したり、次回の抽選から除外したりする機能はありません。毎年同じ人同士が当たらないようにしたい場合は、当たった組み合わせを別途記録しておき、手動でリストを調整する必要があります。