이 도구에 대하여
시크릿 산타 생성기는 선물 교환을 위해 그룹을 무작위로 짝지어 모두가 정확히 한 개의 선물을 주고 한 개를 받게 하며 — 누구도 자기 이름을 뽑지 않게 합니다. 한 줄에 이름 하나씩 붙여넣고, 필요한 제외 짝(예: 커플이 서로 매칭되지 않도록)을 추가한 뒤 Assign을 클릭하세요.
내부적으로는 순환 배정을 사용해 유효한 완전순열을 만듭니다: 이름은 브라우저의 암호학적 난수 생성기(crypto.getRandomValues)로 구동되는 Fisher-Yates 셔플로 섞이고, 섞인 순서에서 각 사람이 순환의 다음 사람에게 선물하며, 마지막 사람은 첫 사람에게 줍니다. 단일 순환은 자기 매칭이 없고 모두가 한 번씩 주고받음을 보장합니다. 제외를 지키기 위해, 이 도구는 어떤 규칙도 어기지 않는 배열을 찾을 때까지 최대 수천 번 다시 섞습니다; 제약을 충족할 수 없으면 잘못된 목록을 반환하는 대신 그 사실을 알려 줍니다.
이것은 주최자를 위한 단일 기기 도구입니다 — 전체 주는 사람-받는 사람 목록을 화면에 보여 주므로, 비공개로 실행하세요. 모든 것은 브라우저에서 로컬로 이루어집니다: 업로드가 없고 오프라인에서 작동합니다. 제외는 한 줄에 두 이름을 쉼표, 콜론, 하이픈으로 구분해 입력하세요(예: "Alex, Jordan").