마니또 뽑는 방법
- 참가자 이름을 한 줄에 한 명씩 적습니다. 3명부터 100명까지 됩니다.
- 커플이나 가족처럼 서로 뽑으면 재미가 없는 사람은 '서로 뽑지 않을 짝'에 추가합니다.
- 선물 예산, 교환 날짜, 남길 말을 적고 마니또 뽑기를 누릅니다.
- 사람마다 생긴 개인 링크를 각자에게 따로 보냅니다. 링크를 열고 선물 상자를 누르면 자기 마니또와 예산, 날짜가 보입니다.
주최자도 결과를 모르게 진행하기
결과 목록에는 누가 누구를 뽑았는지 나오지 않고 이름과 링크 버튼만 있습니다. 링크를 열어 보지 말고 '링크 복사'나 '보내기'로 각자에게 전달만 하면 주최자도 결과를 모른 채 참가자로 함께할 수 있습니다. 복사하거나 보낸 이름에는 '보냄' 표시가 남아 빠뜨린 사람을 찾기 쉽습니다. 참가하지 않는 주최자라면 '전체 결과 보기'로 배정을 확인할 수 있습니다.
링크는 어떻게 작동하나요
배정 결과는 서버가 아니라 각 링크의 # 뒷부분에 담깁니다. 브라우저는 주소의 # 뒷부분을 서버로 보내지 않으므로 스핀픽 서버에는 이름도 결과도 남지 않습니다. 링크 하나에는 그 사람의 배정만 들어 있어, 링크를 받은 사람은 다른 사람의 마니또를 알 수 없습니다.
다만 링크 속 내용은 한눈에 알아보기 어렵게 섞어 둔 것이지 암호화한 것이 아닙니다. 모든 링크를 가진 주최자나 링크를 전달받은 사람이 마음먹고 해독하면 내용을 알아낼 수 있습니다. 서버 없이 동작하는 방식의 한계이니, 각자 자기 링크만 열기로 약속하고 즐겨 주세요.
어떻게 뽑나요
모든 사람이 자기 자신이 아닌 한 명을 뽑고, 모든 사람이 정확히 한 번씩 뽑히도록 배정합니다(수학에서는 이런 배열을 교란순열이라고 합니다). 브라우저의 crypto.getRandomValues로 순서를 섞고, 자기 자신·제외한 짝·서로 뽑기 조건을 모두 지킬 때까지 다시 섞습니다. 그래서 조건을 지키는 배정은 모두 같은 확률로 나옵니다. 제외한 짝이 아주 많아 2만 번을 섞어도 맞는 배정이 없으면 조건에 맞는 배정을 직접 탐색하고, 아예 불가능한 조건이면 누구 때문에 안 되는지 알려 드립니다.
선물 교환을 더 즐겁게
- 예산을 정해 두면 선물 값 차이로 부담스러울 일이 줄어듭니다.
- 각자 갖고 싶은 선물 힌트를 단체방에 하나씩 올려 두면 고르기 쉽습니다.
- 영어권에서는 이 놀이를 시크릿 산타(Secret Santa), 스페인어권에서는 아미고 인비시블레(amigo invisible)라고 부릅니다.