UTILS.
100% 浏览器内运行
🎅

神秘圣诞老人生成器

随机分配神秘圣诞老人礼物配对,让每个人各送出一次并各收到一次,可选排除配对。完全在你的浏览器中离线运行。

单设备组织者工具——它会揭示完整列表,因此请私密运行。
— 输出将显示在这里 —

关于此工具

神秘圣诞老人生成器随机为一个群体配对进行礼物交换,使每个人恰好送出一份礼物并收到一份——且没有人抽到自己的名字。每行粘贴一个名字,添加你需要的任何排除配对(例如,让一对情侣不被匹配给彼此),然后点击分配。

在底层,它用循环分配构建一个有效的错排:名字用由浏览器加密随机生成器(crypto.getRandomValues)驱动的 Fisher-Yates 洗牌打乱,然后打乱顺序中的每个人送给环上的下一个人,最后一个人送给第一个人。单个循环保证没有自我匹配,且每个人都各送出并各收到一次。为了尊重排除,工具会重新洗牌至多几千次,直到找到不违反任何规则的安排;如果你的约束无法满足,它会告知你,而不是返回一份糟糕的列表。

这是一个供组织者使用的单设备工具——它在屏幕上显示完整的送礼人到收礼人列表,因此请私密运行。一切都在你的浏览器本地进行:不上传任何内容且可离线工作。将排除项每行输入两个名字,用逗号、冒号或短横线分隔(例如 "Alex, Jordan")。

常见问题

有人会被分配给自己送礼物吗?
绝不会。分配是单个循环错排,从数学上保证没有人被匹配给自己,且每个人各送出一次并各收到一次。
我如何阻止一对情侣被匹配?
添加一行排除,两个名字用逗号、冒号或短横线分隔,例如 "Alex, Jordan"。排除是双向的,因此两人都无法抽到对方。你可以根据需要添加任意多行排除。
如果我的排除无法满足怎么办?
工具会重新洗牌至多几千次以寻找有效的安排。如果没有任何分配能遵守每一条排除(例如,太多相互重叠的规则),它会报告约束不可能满足,而不是返回一份无效列表。
抽取是私密的吗?它能离线工作吗?
这是一个在一块屏幕上显示整份列表的组织者工具,因此请在玩家看不见的地方运行。它完全在你的浏览器中运行,使用本地加密随机生成器——不上传任何内容且可离线工作。

更多工具