커피 한 잔 사주기
블로그 목록으로
Productivity

사람들이 실제로 받아들이는 무작위 선물 배정

Random Select Team•2026-04-22•6 min

선물 교환은 예측 가능한 방식으로 실패합니다. 가장 흔한 두 가지는 사실 같은 문제입니다. 누군가는 결국 자기 자신을 뽑고, 누군가는 작년에 이미 선물을 사 준 사람을 뽑습니다.

둘 다 해결할 수 있고, 두 번째는 미리 도구에 알려 줘야만 해결됩니다.

배정이 하는 일

선물 선택 도구는 모든 사람을 정확히 다른 한 사람과 짝지어 줍니다. 매칭은 무작위이며, 두 가지 제약이 자동으로 적용됩니다:

각 제공자가 받는 사람과 짝지어진 선물 선택 배정

아무도 자기 자신을 뽑지 않습니다. 이건 수학적 성질입니다. 고정점이 없는 순열을 교란(derangement)이라고 부르며, 이를 만드는 방법은 여러 가지가 있는데 도구가 그중 하나를 씁니다.

제외 설정이 존중됩니다. 생성 전에 일어나면 안 되는 짝을 표시할 수 있습니다. 함께 사는 사람, 관리자와 직속 부하, 어색해질 두 사람 같은 경우입니다. 생성기는 모든 조건을 만족하는 배정이 나올 때까지 다시 시도합니다.

나머지는 모두 우연입니다. 그게 핵심입니다.

설정하기

모두를 한 줄에 한 명씩 적으세요. 이름은 전체 이름을 쓰세요. “Alex”가 아니라 “Alex Chen”처럼요. 도구는 두 명의 Alex를 구분하지 못하고, 중복은 누구도 원하지 않는 짝입니다.

제외를 추가하세요. 사람들이 건너뛰는 단계이면서 결과가 쓸 만한지 결정하는 단계입니다. 흔한 예: 연인과 배우자, 가족, 늘 서로 똑같은 선물을 사는 두 사람, 평가 대상인 사람과 짝지어진 관리자.

예산을 운영한다면 예산을 설정하세요. 예산은 결과와 복사한 메시지에 표시됩니다. 매칭에는 영향을 주지 않는데, 영향을 줄 거라 기대했다면 알아 둘 만합니다.

생성하세요. 도구가 모든 제외를 만족할 수 없다고 알리면, 다시 시도할 오류가 아니라 실제 신호입니다. 보통 제약이 누군가를 막다른 길로 몰았다는 뜻입니다. 누군가 다른 모두를 제외해 유효한 매칭이 불가능해졌는지 확인하세요.

사람들에게 알리기

쪽지 복사는 받는 사람과 예산이 담긴 짧은 메시지를 한 사람용으로 만듭니다. 전체 복사는 전체 목록을 만듭니다.

이게 전체 과정에서 어색한 부분입니다. 누군가는 결과를 나눠 줘야 하는데, 그 사람은 모든 짝을 볼 수 있습니다. 도구에는 사람별 비공개 링크가 없습니다.

모두가 서로 아는 사이고 재미가 나중의 비밀에 있다면 괜찮습니다. 관리자가 누가 누구를 뽑았는지 모르는 게 핵심이라면 문제가 됩니다. 그럴 때는 각자에게 비공개 메시지를 보내거나, 누가 진행했는지 밝히지 않고 추첨을 진행하세요.

배정은 최종이라고 말하세요. 미리 밝혀야 할 가장 중요한 한 가지입니다. 누군가 자기 짝이 마음에 안 드는 순간 다시 돌리고 싶은 충동이 압도적으로 밀려오니까요. 다시 돌리면 공정한 절차가 마음에 드는 결과를 찾는 일로 변하고, 모두가 그걸 지켜봅니다.

효과를 만드는 관행

제외를 먼저 하세요. 누가 누구와 짝이 되면 안 되는지 10분 대화를 하면 12월의 말다툼을 막습니다.

생성 전에 규칙을 공지하세요. 최종성, 예산, 구매 기한, 교환 날짜.

실제 기한을 주세요. 사람들은 마지막 순간에 선물을 대충 삽니다. 보통 2주가 답이고, 날짜를 정해야 교환이 그날 이루어지고 밀리지 않습니다.

이후에는 비밀로 하세요. 전체가 아무도 모르기 때문에 작동합니다. 당일에 짝이 공개되면 기대감이 사라지고 아무도 그것에 대해 긴장하지 않습니다.

무작위가 잘못된 선택일 때

관계가 중요할 때. 모두가 사이좋지 않은 가족 선물 교환은 무작위로 해결되지 않습니다. 중요한 짝에 대한 통제권을 빼앗아 갑니다.

특정인에게 보상하거나 감사하고 싶을 때. 추첨은 슬쩍 조정할 수 없습니다. 조정하고 싶어진다면 수동 배정이 필요한 겁니다.

손으로 잘 짝지을 수 있는 작은 모임. 네 명이면 모든 가능한 짝을 다 볼 수 있고, 피하고 싶은 짝도 보입니다. 도구는 종이에 적는 3초를 아껴 줄 뿐입니다.

제외를 만족시킬 수 없을 때. 두 사람이 서로를 제외한 세 명 그룹에는 유효한 답이 없습니다. 도구가 알려 줄 테니, 답은 제약을 다시 생각하는 것이지 계속 다시 시도하는 게 아닙니다.

무작위성에 대한 참고

매칭은 Math.random()이 아니라 브라우저의 암호학적 난수 원천을 씁니다. Math.random()은 결정론적이어서 원리상 재구성해 결과를 예상할 수 있습니다. 제약이 적용될 때 생성기는 유효한 배치를 찾을 때까지 섞고 다시 시도합니다. 시도 횟수에는 상한이 있고, 그 후에는 제외를 위반하는 결과를 돌려주는 대신 실패를 알립니다.

공정성 페이지에 메커니즘이 설명되어 있습니다.

이 재시도 동작은 알아 둘 만합니다. 매칭은 모든 유효한 배치에서 한 번에 균일하게 뽑는 것이 아닙니다. 다시 시도하면 만족시키기 쉬운 배치에 유리하게 작용하니까요. 선물 교환에는 상관없습니다. 아무도 배치를 구분하지 못하니까요. 상금이 걸린 추첨이라면 중요해집니다. 그때 공정한 방식은 유효한 집합에서 한 번에 뽑는 것입니다.

진행하기

제외를 적고, 생성하고, 곧바로 쪽지를 각자에게 보낼 메시지로 복사하세요. 그리고 누구든 답하기 전에 “최종”이라고 소리 내어 말하세요.

준비됐나요? 선물 선택 도구를 열고 명단을 붙여 넣으세요.

RST

Random Select Team

Random Select의 숙련된 데이터 분석가이자 게임 이론가입니다. 디지털 공정성, 확률 수학, 랜덤 의사결정 시스템에서 10년 이상의 경험을 보유하고 있습니다.

이 기사 공유