Homsy

Тайный Санта: жеребьёвка онлайн

Впишите имена всех участников, разведите пары и тяните жребий. Каждый получает свою ссылку: открывает её на телефоне и видит, кому дарит подарок, — без почты, без регистрации, без приложения. Добавьте бюджет и дату, и они попадут в каждую ссылку. Вместо ссылок можно распечатать и раздать карточки с QR-кодом, а если ваши правила делают честную жеребьёвку невозможной, генератор так и скажет и назовёт, кто застрял.

Aisha Ben Carla Dev Elena Finn Grace Hugo

Пример группы — добавьте первое имя, и он исчезнет.

Участников: 8, правил: 3. Можно тянуть жребий.

Имён каждому

Нажмите два имени на кольце, чтобы развести их. Оставьте включённым, если вы тоже участвуете.

Кто участвует

8 из 40

Введите имя и нажмите Enter или вставьте весь список — по одному на строке или через запятую. Не больше 40 человек.

Развести

Пары, соседи по квартире, прошлогодние пары — все, кто не должен вытянуть кого-то.

  • Aisha ⇄ Ben
  • Dev ⇄ Elena
  • Finn → Grace

Детали

Необязательно. Всё, что вы здесь заполните, появится на каждой странице с результатом и на каждой карточке.

Поставьте этот генератор на свой сайт

Вставьте эти две строки на любую страницу — во внутренний сайт компании, на сайт клуба, в семейный блог. Жеребьёвка работает внутри рамки, а ссылки, которые она выдаёт, открываются здесь.

Жеребьёвка занимает минуту. Остальной декабрь — это списки, и Homsy держит подарки, еду и то, кто что приносит, в телефоне у всех.

Ваши имена, исключения, детали и жеребьёвка сохраняются в этом браузере, так что можно вернуться и заново отправить ссылку. Аккаунт не нужен, а если очистить данные браузера, очистится и список.

Как устроена жеребьёвка и что лежит в ссылке

Каждый может вытянуть кого угодно, кроме себя и тех, кого вы от него отделили. «Друг друга» убирает оба направления между двумя людьми, «в одну сторону» — только одно. Прежде чем что-то тянуть, генератор проверяет, существует ли вообще жеребьёвка, которая соблюдает все правила. Для одного имени на человека это задача о паросочетании — можно ли каждому выдать своё, разрешённое ему имя, — и ответ на неё находится точно, а не методом «попробуем и посмотрим». Если ответ «нет», страница называет виновных: группу дарителей, которым на всех разрешено меньше имён, чем их самих. Теорема Холла о свадьбах говорит, что жеребьёвка существует ровно тогда, когда такой группы нет, так что назвать группу — значит назвать причину.

Для одного имени на человека жеребьёвка — это перемешивание. Весь список перемешивается криптографическим генератором случайных чисел браузера, и результат остаётся, только если каждому досталось разрешённое ему имя; иначе список перемешивается снова, до двадцати тысяч раз. Если оставлять только прошедшие проверку перемешивания, у каждой допустимой жеребьёвки ровно одинаковый шанс. Только когда правила оставляют так мало допустимых вариантов, что все двадцать тысяч попыток проваливаются, страница переходит на случайный поиск: он всегда находит вариант, но не обещает каждой жеребьёвке равного шанса.

Для двух имён на человека проверка существования — это задача о потоке: каждый дарит двоим, каждому дарят двое, никто не вытягивает одного человека дважды. Сама жеребьёвка — два круга перемешивания для одного имени, причём второму запрещено повторять первый. Это близко к равному шансу для каждой допустимой жеребьёвки на два имени, но не точно равный, и мы говорим об этом прямо, а не округляем.

Цифра в тексте под инструментом — простая арифметика. Когда каждый в группе тянет одно имя из шапки, доля жеребьёвок, где никому не досталось своё имя, — это число беспорядков, делённое на число перестановок: 9 из 24 для четырёх человек, 44 из 120 для пяти, 14 833 из 40 320 для восьми. Начиная с четырёх человек она держится между 36 % и 38 % и стремится к единице, делённой на e, — около 36,8 %.

Каждая ссылка несёт жеребьёвку одного человека: название события, его имя, имя или имена тех, кому он дарит, с подсказками, если вы их добавили, бюджет, дату, вашу заметку, четырёхсимвольный код жеребьёвки и минуту, когда она прошла. Ссылка перемешана так, чтобы имя нельзя было прочесть с одного взгляда в превью сообщения. Это не шифрование: любой, кто откроет ссылку, увидит, что в ней, поэтому отправляйте каждому только его ссылку. На распечатанных карточках та же ссылка в виде QR-кода, с уровнем коррекции ошибок M, который по стандарту QR восстанавливает около 15 % повреждённого символа, или L — около 7 % — для ссылки, слишком длинной для M. Предел в сорок человек — наш собственный выбор: дальше кольцо имён и страница карточек перестают читаться. Календарный файл на странице результата содержит одно событие на весь день обмена подарками с напоминанием за неделю; в нём названы день и бюджет, но никогда — человек. Имена, исключения, детали и жеребьёвка сохраняются в этом браузере, чтобы организатор мог заново отправить потерянную ссылку; аккаунт не нужен.

Откуда эти цифры

  1. 1. On Representatives of Subsets (Hall's marriage theorem) — P. Hall, Journal of the London Mathematical Society, 1935
  2. 2. A000166: Subfactorial or rencontres numbers, or derangements — The On-Line Encyclopedia of Integer Sequences
  3. 3. ISO/IEC 18004:2015 — QR Code bar code symbology specification — International Organization for Standardization
  4. 4. Crypto: getRandomValues() method — MDN Web Docs, Mozilla

Каждая цифра выше взята из кода, который работает на этой странице. Где число — наша собственная оценка, а не опубликованные данные, в примечании так и сказано, и источник не указан. Метод в последний раз проверен 28 сентября 2026.

Почему жеребьёвка «Тайного Санты» из шапки идёт не так

Бумажки в шапке ещё работают для четырёх человек за кухонным столом. С ростом группы они перестают работать, и арифметика объясняет почему. В любой группе от четырёх человек шанс, что никто не вытянет своё имя, держится между 36 % и 38 %, — так что большинство жеребьёвок из шапки приходится переигрывать, а последний тянущий переиграть не может вовсе: его бумажка осталась единственной. Генератор переигрывает за вас, незаметно, сколько нужно раз.

Исключения — второе, на чём шапка ломается. Она не знает, что два имени — это пара, которая и так собиралась дарить друг другу, или что те же двое вытянули друг друга в прошлом году. Каждое новое правило делает ошибку в шапке вероятнее, а после какого-то предела жеребьёвки, которая соблюдает все правила, нет вовсе — и шапка об этом никогда не скажет. Этот генератор проверяет заранее, а когда все правила выполнить нельзя, называет людей, которым тесно, и имена, в которые они упираются, чтобы вы знали, какое исключение убрать.

Третья проблема — организатор. Кто-то должен провести жеребьёвку, а в большинстве компаний этот человек тоже хочет сюрприза. Здесь пары скрыты, пока вы не попросите их показать, и каждый видит своё имя на своём телефоне, так что организатор участвует наравне со всеми.

Договоритесь о бюджете и дате до жеребьёвки, а не после: сумма на каждой карточке — это то, что не даёт одному потратить втрое больше остальных. Для остального списка статья о планировании рождественских подарков объясняет, как задать сумму на человека, а Рождественский планер для печати кладёт подарки, ужин и обратный отсчёт на три листа. Если «Тайный Санта» — часть семейного Рождества, планирование рождественского ужина разбирает, кто что приносит, а Калькулятор честного деления семейных расходов потом поделит общие траты.

Поле «Подсказка» рядом с каждым именем — то место, где пригодится анкета для Тайного Санты. Раздайте листы до жеребьёвки — что нравится, размеры, аллергии и короткий список «только не это», — а потом впишите лучшую строку из каждого листа рядом с именем этого человека, чтобы тому, кто его вытянет, было на что опереться, кроме догадок.

Честное ограничение здесь то же, что у любой ссылки: она доходит только до того, кому вы её отправили. Если кто-то свою потерял, откройте эту страницу на том устройстве, где проводили жеребьёвку, — она сохранена в том браузере — и отправьте ссылку снова.

Часто задаваемые вопросы

Как работает эта жеребьёвка «Тайного Санты»?

Впишите имена всех участников, отметьте тех, кто не должен вытянуть друг друга, при желании добавьте бюджет и дату и нажмите «Тянуть жребий». Каждый получает собственную ссылку. Отправьте её в WhatsApp, по СМС, в Slack или куда угодно, где можно переслать ссылку; когда человек её откроет, на телефоне развернётся подарок и покажет, кому он дарит, — вместе с бюджетом, датой и подсказкой, если вы её добавили.

Нужны ли мне адреса электронной почты всех участников?

Нет. Ни почты, ни аккаунтов, ни регистрации. Генератор даёт по одной ссылке на человека, а отправляете вы их так, как ваша компания уже общается. Если часть участников в одной комнате, распечатайте карточки с QR-кодом и раздайте их.

Как сделать, чтобы пары не вытянули друг друга?

Разведите их. Выберите два имени и укажите «друг друга» для пары или соседей по квартире или «в одну сторону», когда только один из них не должен вытянуть другого, — например, для прошлогодних пар. Можно и просто нажать два имени на кольце. Каждая жеребьёвка соблюдает все заданные правила, а кольцо показывает каждое из них узелком между двумя именами.

А если честная жеребьёвка невозможна?

Генератор скажет об этом ещё до жеребьёвки и назовёт, кто застрял, — например: «Аиша, Бен и Карла на троих могут вытянуть только два имени — Дев и Елена: три человека, два имени». Так бывает, когда исключения оставляют группе меньше имён, чем в ней людей. Уберите одно из их исключений и тяните снова.

Видит ли организатор, кто кому дарит?

Только если сам захочет. Жеребьёвка проходит на телефоне или компьютере организатора, и пары скрыты, пока организатор их не покажет, так что организатор, который тоже участвует, может провести жеребьёвку и всё равно получить сюрприз. Но все ссылки есть на экране организатора, и любой, кто откроет ссылку, увидит, что в ней, — поэтому отправляйте каждому только его ссылку и не открывайте их сами.

Можно ли, чтобы каждый дарил двоим?

Да. Переключите «Имён каждому» на два: каждый вытянет два имени и сам будет вытянут дважды, и никто не вытянет одного и того же человека два раза. Исключения при этом действуют. Нужно не меньше трёх человек, и в группе с большим числом исключений чаще не бывает честной жеребьёвки на два имени — генератор скажет, если это так.

Работает ли это с нечётным числом людей?

Да. «Тайный Санта» — это цепочка, а не набор пар, поэтому подойдёт любое число от трёх до сорока. Вдвоём никакой тайны не получится, поэтому генератор попросит третьего.

Что будет, если провести жеребьёвку ещё раз?

Каждый получит новую ссылку. Ссылки от прошлой жеребьёвки по-прежнему открываются и показывают прошлый результат, потому что каждая ссылка несёт свой результат в себе. На каждой странице с результатом и на каждой карточке есть четырёхсимвольный код жеребьёвки и её время, так что скажите группе, какой код считается, и разошлите новые ссылки.

Можно ли распечатать жеребьёвку «Тайного Санты»?

Да, двумя способами. Карточки печатаются по восемь на странице, по одной на человека: имя спереди и QR-код, который открывает результат; вырежьте их и раздайте. Список печатает каждое имя рядом с его ссылкой и квадратиком, чтобы отмечать отправленные. Если удобнее хранить файл, в окне печати выберите «Сохранить как PDF».

Жеребьёвка правда случайная?

Да. Для одного имени на человека генератор перемешивает весь список криптографическим генератором случайных чисел браузера и оставляет результат, только если каждому досталось имя, которое ему можно вытянуть, — так у каждой допустимой жеребьёвки одинаковый шанс. Для двух имён он делает два таких круга, и второй не может повторить первый; это близко к равному шансу, но не точно равный.

Сохраняет ли генератор мой список?

Да, в этом браузере. Имена, исключения, детали и результат жеребьёвки хранятся в локальном хранилище этого браузера, так что можно вернуться позже и заново отправить ссылку тому, кто свою потерял. Аккаунт не нужен, а если очистить данные браузера, очистится и список.

Похожие инструменты

Держите весь остальной декабрь в одном списке с Homsy

Жеребьёвка занимает минуту. Остальной декабрь — это списки: подарки, еда, кто что приносит. Homsy держит их в телефоне у всех, вместе с теми, кто этими делами занимается.