랜덤 날짜 생성기로 할 수 있는 일
랜덤 날짜 생성기는 직접 정한 기간에서 달력 날짜를 무작위로 뽑습니다. 팀 행사를 깜짝 날짜로 정할 때처럼 하루만 뽑을 수도 있고, 테스트 데이터베이스나 스프레드시트를 채울 날짜 수백 개를 뽑을 수도 있습니다. 기간 안의 모든 날은 확률이 같고, 첫날과 마지막 날도 뽑힐 수 있습니다.
날짜는 브라우저 안에서 만들어지며 어디로도 전송되지 않습니다.
사용 방법
- 시작일에 허용할 첫날을, 종료일에 마지막 날을 고릅니다. 기본값은 2026년 전체입니다.
- 원하는 날짜 개수를 최대 1,000개까지 정합니다.
- 형식을 고릅니다.
2026-10-04(ISO 8601, 정렬과 데이터베이스에 가장 적합하며 한국에서 흔히 쓰는 연-월-일 순서)2026년 10월 4일2026년 10월 4일 일요일10/04/2026 (미국식)월이 먼저 오는 미국식04/10/2026 (영국, 유럽식)일이 먼저 오는 영국, 유럽식
- 정렬에서 “뽑힌 순서”, “이른 날짜부터”, “늦은 날짜부터” 중 하나를 고릅니다.
- 옵션에서 필요에 따라 중복 없이, 평일만, 시각 포함을 켭니다.
- 결과 구분 기호를 고른 뒤 날짜 생성을 누릅니다.
날짜 하나는 결과 아래에 큰 글씨로 표시되고, 여러 개는 그 아래 상자에 나옵니다. 복사를 누르면 날짜가 복사됩니다. 최근 결과는 페이지를 떠나거나 지우기를 누를 때까지 최근 열 번의 결과를 보관합니다.
예시
아래 예시는 모두 이 페이지를 실행하는 코드로 실제로 뽑은 결과입니다.
| 설정 | 한 번 실행한 결과 |
|---|---|
| 2026년 전체, 1개, ISO | 2026-05-30 |
| 2026년 전체, 3개, 이른 날짜부터, 긴 형식 | 2026년 3월 7일, 2026년 5월 2일, 2026년 12월 21일 |
| 2026년 전체, 3개, 평일만, 요일 형식 | 2026년 7월 30일 목요일, 2026년 12월 1일 화요일, 2026년 8월 20일 목요일 |
| 2026년 전체, 2개, 시각 포함, ISO | 2026-01-16T05:45:16, 2026-11-06T22:01:43 |
| 2026년 10월, 2개, 시각 포함, 긴 형식 | 2026년 10월 5일 12:39:44, 2026년 10월 31일 21:30:10 |
| 2026년 전체, 2개, 미국식 | 08/12/2026, 02/01/2026 |
| 2026년 전체, 2개, 영국, 유럽식 | 16/10/2026, 11/06/2026 |
| 1990년부터 2005년, 3개, 이른 날짜부터 | 1992-05-02, 1999-11-06, 2003-01-03 |
| 2026년 10월, 4개, 평일만, 중복 없이, 이른 날짜부터 | 2026년 10월 1일 목요일, 2026년 10월 14일 수요일, 2026년 10월 27일 화요일, 2026년 10월 29일 목요일 |
미국식과 영국식 줄을 비교해 보세요. 08/12/2026은 미국식으로는 8월 12일이지만, 영국 사람이 쓰면 12월 8일입니다. 여러 나라의 사람이나 프로그램이 날짜를 읽는다면 ISO 형식이 이런 혼동을 막아 줍니다. ISO 형식은 한국식 날짜 표기와 순서가 같아서 국내에서 쓰기에도 가장 자연스럽습니다. 긴 형식과 요일 형식은 브라우저에 내장된 Intl 기능이 페이지 언어에 맞춰 만들기 때문에, 한국어 페이지에서는 2026년 10월 4일 일요일처럼 한국어로 나옵니다.
작동 원리
도구는 두 날짜를 1970년 1월 1일부터 센 날 수로 바꿉니다. 그런 다음 두 숫자 사이에서 정수 하나를 무작위로 골라 다시 날짜로 바꿉니다. 하루 단위로 계산하므로 윤년의 2월 29일을 포함한 모든 날짜의 확률이 같고, 짧은 달이라고 해서 더 자주 뽑히지도 않습니다.
난수는 브라우저에 내장된 보안 생성기인 crypto.getRandomValues에서 나옵니다. 이 값은 거부 샘플링(rejection sampling)으로 범위에 맞춰집니다. 일부 날짜가 조금 더 잘 나오게 만드는 값은 버리고 다시 뽑기 때문에, 단순한 나머지 계산에서 생기는 작은 편향이 사라집니다.
평일만을 켜면 먼저 기간 안의 월요일부터 금요일을 모두 나열한 뒤 그 목록에서 뽑습니다. 시각 포함은 00:00:00부터 23:59:59 사이의 무작위 초를 더합니다. 중복 없이는 같은 날이 두 번 뽑히지 않게 합니다.
모든 날짜는 시간대 정보가 없는 순수한 달력 날짜이므로, 다른 곳에 붙여넣어도 하루씩 밀리지 않습니다.
활용 예
- 테스트 데이터. 데모나 데이터베이스 초기 데이터에 쓸 주문일, 가입일, 마감일을 채웁니다.
- 표본 추출. 기록 감사, 로그 점검, 불시 검사를 할 날을 무작위로 고릅니다.
- 일정 계획. 팀 점심 깜짝 날짜나 소방 훈련 날을 무작위로 정합니다.
- 수업. 학생들에게 무작위 날짜를 주고 무슨 요일인지 맞혀 보게 합니다. 요일 형식으로 답을 확인할 수 있습니다.
- 게임과 글쓰기 주제. 역사 속 날짜 하나를 뽑아 그날 무슨 일이 있었을지 글을 써 봅니다.
팁과 한계
- 공휴일은 빼지 않습니다. 평일만은 토요일과 일요일만 빼고 설날, 추석 같은 공휴일은 그대로 둡니다.
- 중복 없이 너무 많이 요청할 때. 중복 없이를 켜고 기간에 있는 날보다 많은 날짜를 요청하면 짧은 목록 대신 메시지가 나옵니다. 평일만을 켠 경우에는 가능한 평일을 모두 돌려주고 그 사실을 알려 줍니다.
- 시각은 무작위 값입니다. 하루 24시간에서 고르게 뽑으므로 밤 시간도 업무 시간과 똑같이 나옵니다.
- 스프레드시트. Excel과 Google 스프레드시트는 ISO 날짜를 안정적으로 읽습니다. 다른 형식은 시스템 설정에 따라 일과 월이 뒤바뀌어 읽힐 수 있습니다.
- 시각이 담긴 ID가 필요하다면 UUID 생성기의 버전 7 UUID를 쓰세요. 생성 시각이 들어 있습니다.
다른 방법으로 무작위 날짜 만들기
Excel 또는 Google 스프레드시트. =RANDBETWEEN(DATE(2026,1,1), DATE(2026,12,31))은 무작위 날짜의 일련번호를 돌려줍니다. 셀 서식을 날짜로 바꾸면 날짜로 보입니다. 평일만 원하면 WORKDAY로 감쌀 수 있지만, 이 방법은 주말에 뽑힌 날을 다음 평일로 미루기 때문에 월요일이 더 자주 나옵니다.
Python. random.randint(0, (end - start).days)로 무작위 일수를 고르고 timedelta로 start에 더합니다.
SQL. PostgreSQL에서는 date '2026-01-01' + floor(random() * 365)::int로 2026년의 무작위 날짜를 얻습니다.
관련 도구
날짜 전체가 아니라 달만 뽑으려면 랜덤 월 생성기를 쓰세요. 일반적인 무작위 숫자가 필요하다면 랜덤 숫자 생성기를 사용하면 됩니다.