추첨기 — 당첨자 뽑기와 증빙 이미지 저장 (SHA-256 해시)
중복 제외 추첨과 추첨 시각·해시가 담긴 증빙 이미지를 만드는 추첨기
브라우저에서 처리 · 서버로 전송되지 않음
추첨 결과
아직 추첨하지 않았어요.
목록 해시 (SHA-256)
이 해시는 목록이 한 글자라도 바뀌었는지 확인하는 용도예요. 같은 목록(순서까지 같게)을 붙여 넣으면 같은 값이 나와요.
지금 목록의 해시
—
추첨 시각은 이 기기의 시계에서 가져오며 얼마든지 바꿀 수 있어요. 해시는 이 해시를 공유한 뒤 목록이 바뀌지 않았다는 것만 보여 줄 뿐, 목록이 언제 만들어졌는지도 추첨이 무작위였는지도 증명하지 않아요.
링크에는 응모자 이름만 들어가요. 추첨 결과는 들어가지 않아요. 개인정보가 들어 있다면 공유하지 마세요.
소개
이벤트 경품, 스터디 발표 순서, 회식 당번, 수업 참여 보상처럼 응모자 중에서 몇 명을 뽑아야 할 때 쓰는 추첨기예요. 응모자를 한 줄에 한 명씩 넣고 당첨자 수와 예비 당첨자 수를 정하면 중복 없이 뽑아 줘요. 한 번에 모두 뽑는 방식과 두근두근하게 한 명씩 뽑는 방식 중에서 고를 수 있어요. 추첨이 끝나면 추첨 시각, 응모 수, 응모자 목록의 SHA-256 해시, 당첨자 명단이 담긴 증빙 이미지(PNG)를 저장할 수 있어요. 해시는 나중에 목록이 바뀌지 않았음을 확인하는 용도이고, 추첨이 무작위였음을 증명하지는 않는다는 점을 화면에도 적어 두었어요.
사용법
- 응모자 목록에 이름을 한 줄에 한 명씩 적거나 쉼표로 구분해 넣습니다. 목록 아래에 지금 목록의 해시가 실시간으로 보여요.
- 같은 이름을 한 번만 세려면 “같은 이름은 한 번만 넣기”를 켜 둡니다.
- 당첨자 수와 예비 당첨자 수를 입력합니다.
- “한 번에 뽑기” 또는 “한 명씩 뽑기”를 고르고 추첨 버튼을 누릅니다.
- 결과 아래에 추첨 시각(현지 시각과 UTC 오프셋, 시간대 이름)과 해시가 나와요. “증빙 이미지 저장 (PNG)“으로 보관하고 “결과 복사”로 텍스트를 가져갑니다.
기준
- 중복 없는 추첨: 목록의 각 줄이 응모권 한 장이에요. 한 장을 무작위로 뽑으면 그 이름은 남은 추첨에서 전부 빠져요. 그래서 당첨자와 예비 당첨자는 서로 모두 다른 사람이에요.
- 인원 제한: 당첨자와 예비의 합은 서로 다른 이름의 수를 넘을 수 없어요. 응모자는 최대 10,000건까지 넣을 수 있어요.
- 난수:
crypto.getRandomValues에서 쏠림 없이 뽑고Math.random은 쓰지 않아요. - 목록 해시: 목록의 이름들을 입력한 순서대로 줄바꿈(\n)으로 이어 붙인 텍스트를 UTF-8로 바꿔 SHA-256을 계산한 값이에요. 순서가 다르면 해시도 달라요.
- 결과 해시: 당첨자는
W:이름, 예비는R:이름줄로 이어 붙인 텍스트의 SHA-256이에요. - 추첨 시각: 추첨이 끝나는 순간의 브라우저 시계를
2026-10-03 14:05:12 (UTC+09:00, Asia/Seoul)형식으로 적어요. 기기 시계가 틀리면 시각도 틀리므로 공식 증빙이 필요하면 서버 시각 도구와 함께 쓰세요. - 증명 범위: 해시는 변경 여부만 확인해 줘요. 추첨 방식이 공정했는지는 해시로 알 수 없어요.
예시
| 응모자 | 설정 | 결과 |
|---|---|---|
| 민수, 지영, 철수, 하나, 준호, 서연 | 당첨 1명 | 6명 중 1명 |
| 같은 목록 | 당첨 2명 + 예비 2명 | 서로 다른 4명 |
| 민수, 민수, 지영 (중복 허용) | 당첨 1명 | 민수 확률 2/3, 지영 1/3 |
| 같은 목록 (중복 제거) | 당첨 1명 | 민수·지영 각각 1/2 |
자주 묻는 질문
증빙 이미지의 해시는 무엇을 증명하나요?
응모자 목록을 SHA-256으로 계산한 값이라서, 같은 목록을 같은 순서로 붙여 넣으면 같은 해시가 나와요. 해시를 공유해 둔 뒤 목록이 한 글자도 바뀌지 않았다는 것은 나중에 확인할 수 있어요. 다만 추첨 시각은 이 기기의 시계에서 가져온 값이라 바꿀 수 있고, 해시는 목록이 언제 만들어졌는지를 증명하지 않아요. 목록은 이미지에 들어 있지 않으니 따로 보관해 두어야 비교할 수 있어요.
해시가 추첨이 무작위였다는 증거가 되나요?
아니요. 해시는 목록과 결과가 나중에 바뀌었는지만 알려 주고, 뽑는 과정이 공정했는지는 보여 주지 않아요. 이 도구는 브라우저의 암호용 난수로 뽑지만, 그것을 제3자가 확인할 방법은 없어요. 공정성이 중요한 추첨이라면 참가자가 보는 앞에서 화면을 공유하며 뽑는 것을 권해요.
같은 사람이 여러 번 당첨될 수 있나요?
한 사람은 최대 한 번만 당첨돼요. "같은 이름은 한 번만 넣기"를 켜 두면 중복된 줄이 하나로 합쳐지고, 끄면 같은 이름을 여러 줄 적은 만큼 응모권이 늘어나 당첨 확률이 올라가요. 그래도 한 번 뽑힌 이름은 이후 추첨에서 빠져요.
한 명씩 뽑기는 어떻게 동작하나요?
첫 클릭에 추첨을 시작하면서 목록을 고정하고 당첨자를 한 명 뽑아요. 이후 "다음 당첨자 뽑기"를 누를 때마다 한 명씩 더 뽑고, 당첨자를 다 뽑으면 예비 당첨자를 이어서 뽑아요. 모두 끝나면 추첨 시각과 해시가 정해져요. 도중에 목록은 바꿀 수 없어요.
응모자 이름이 다른 곳에 저장되나요?
아니요. 추첨과 해시 계산, 이미지 생성이 모두 브라우저 안에서 일어나고 서버로 보내지 않아요. 공유 링크는 버튼을 눌렀을 때만 만들어지고 응모자 이름이 주소의 # 뒤에 담겨요. 서버로 전송되지는 않지만 링크를 받은 사람은 볼 수 있으니, 개인정보가 들어 있다면 쓰지 마세요.