プレゼント交換のくじ引き(シークレットサンタ)
参加者の名前を入力し、組み合わせたくない人(夫婦・家族など)を指定してから抽選します。一人ひとりに専用リンクが作られ、開いた本人だけが「誰にプレゼントを贈るか」を見られます。自分を引くことはありません。会員登録もメールアドレスも不要です。
計算方法
使い方
- 参加者の名前を1行に1人ずつ入力します。
- 必要なら、お互いを引かない組み合わせを指定します(夫婦やきょうだいなど):
佐藤 + 鈴木。1行に3人以上(佐藤 + 鈴木 + 高橋)を書くと、その家族全員がお互いを引かなくなります。佐藤 > 鈴木は一方向だけを除外します。 - イベント名、予算、日時、メッセージを入れると、各自のカードに表示されます。
- 「抽選してリンクを作成」を押し、一人ひとりに専用リンクをLINE、メール、コピー&貼り付けなどで送ります。リンクを開いた人が「表示する」を押すと、誰に贈るかがわかります。
サーバーなしで、どうやって秘密を守るのか
アカウントもデータベースもありません。組み合わせは、専用リンクの#より後ろの部分(フラグメント)に保存されます。インターネットの標準仕様RFC 3986により、ブラウザはこの部分をサーバーに送信しません。つまり、当サイトのサーバーが名前を目にすることはありません。
贈る相手の名前はリンクにそのまま書かれているわけではなく、ランダムな鍵で難読化(XORのあとBase64で符号化)されているため、リンクは意味のない文字列に見えます。正直にお伝えすると、鍵は同じリンクの中に入っているので、パスワードなしで開けます。うっかり見てしまうことは防げますが、他人のリンクを意図的に開けば、その人が誰を引いたかは見えてしまいます。幹事の画面に表示されるのはリンクだけで、組み合わせは表示されません。他人のリンクを開かなければ、幹事も結果を知らずに済みます。
すべてがリンクに保存されるため、抽選をやり直すと新しいリンクが作られます。古いリンクは古い抽選結果を表示し続けるので、その場合は全員に新しいリンクを送り直してください。
公平な抽選:自分を引くことはありません
抽選結果は、全員がちょうど1つ贈り、ちょうど1つ受け取るランダムな組み合わせです。リストはフィッシャー–イェーツ法とブラウザのcrypto.getRandomValues()でシャッフルされ、自分自身や除外した相手を引く並びはすべて捨てられます。そのため、許可された組み合わせはどれも同じ確率で選ばれます。たとえば3人なら組み合わせはちょうど2通り(A→B→C→A または A→C→B→A)で、それぞれ50%です。
抽選できないのはどんなとき?
除外ルールによっては抽選が不可能になります。例:3人のうち2人が夫婦の場合、2人とも残りの1人を引くしかありませんが、これは成り立ちません。一般に、お互いを引かないグループが参加者全体の半分より大きいと、そのグループに割り当てる相手が足りなくなります。このツールは入力中にチェックし、抽選の前にお知らせします。
プレゼント交換を楽しむコツ
- 最初に予算を決めておくと、誰も気まずい思いをしません。職場や学校では1,000円、3,000円のように金額をそろえるのがおすすめです。
- 交換する日時もあわせて書いておきましょう。たとえばクリスマス会や忘年会の日です。
- 名前は1行に1人のほか、1行に「佐藤、鈴木、高橋」のように読点で区切って入力することもできます。
よくある質問
プレゼント交換のくじをオンラインで作るには?
参加者の名前を入力して抽選し、全員に専用リンクを送るだけです。リンクには、その人が誰に贈るかが難読化された形で入っています。アカウントやメールアドレスは不要です。
シークレットサンタとは?やり方は?
くじで決めた相手に、誰からかを伏せてプレゼントを贈るプレゼント交換の方法です。英語圏のクリスマスの習慣です。やり方は、くじ引きで相手を決め、予算内でプレゼントを用意し、当日に渡すだけです。
幹事には誰が誰を引いたかわかりますか?
画面上ではわかりません。表示されるのはリンクだけです。ただし鍵がリンクに含まれているため、幹事が他人のリンクを開けば組み合わせは見えます。うっかり見ることは防げますが、意図的に見ることまでは防げません。
夫婦や家族同士が当たらないようにできますか?
はい。「組み合わせたくない人」欄に1行に1ルールで、たとえば佐藤 + 鈴木と入力します。1行に3人以上書けば、家族全員がお互いを引かなくなります。
自分のプレゼントが自分に当たらないくじ引きはできますか?
できます。このくじ引きでは誰も自分を引かず、全員がちょうど1つ贈って1つ受け取る組み合わせだけが選ばれます。紙のくじのように引き直す必要はありません。
名前はどこかに保存・送信されますか?
いいえ。抽選はすべてブラウザ内で行われます。データはリンクの中にだけあり、ブラウザは#より後ろの部分をサーバーに送信しません。
抽選をやり直すとどうなりますか?
新しい組み合わせで新しいリンクが作られます。すでに送った古いリンクは古い結果を表示し続けるので、全員に新しいリンクを送り直してください。
何人まで参加できますか?無料ですか?
3〜200人まで参加できます。無料で、会員登録やアプリのインストールも不要です。スマホ、タブレット、パソコンで使えます。
出典・根拠
- W3C Recommendation: W3C Web Cryptography API – getRandomValues()
- IETF RFC 3986 § 3.5: RFC 3986 – Uniform Resource Identifier, Abschnitt 3.5 (Fragment)
- Secret Santa
- MDN Web Docs – URL.hash
更新日:
関連ツール
- 抽選ツール(名前でくじ引き)名前のリストから当選者をランダムに抽選、順番をシャッフル、チームに均等分けできる無料の抽選ツール。登録不要で、リンクで結果を共有できます。
- ランダムチーム分けツール名前を貼り付けてチーム数か1チームの人数を選ぶだけで、ランダムにチーム分け。実力を数字で入れれば強さが均等になるよう分けます。スポーツや授業に。無料です。
- ルーレット作成ツール:名前や項目を入れて回すだけルーレット作成ツール(無料)|名前や項目を入れて回せる抽選ルーレット。確率の調整、当選者の除外、URLでの共有もできます。登録不要でスマホ対応。
- サイコロを振る:d6、d20などオンラインでサイコロを振れます。4・6・8・10・12・20面のサイコロを1〜10個、合計・履歴・正確な確率つき。公平な暗号学的乱数を使用。
- 2048ゲームをオンラインで遊ぶ2048パズルをブラウザで無料プレイ。スワイプか矢印キーで同じ数字をくっつけて2048を目指します。ベストスコア、ひとつ戻す、途中保存に対応。
- Tier表メーカー:ティアリストを作成無料のTier表メーカー。テキストや手持ちの画像をSからFのランクに並べ、行の名前や色も自由に変更。PNGで保存、リンクで共有できます。登録不要です。