ランダム日付生成ツールでできること
指定した期間から、カレンダー上の日付をランダムに選びます。チームイベントのサプライズの日のように1つだけ引くことも、テスト用のデータベースや表計算シートを埋めるために何百件も作ることもできます。期間内のすべての日が同じ確率で選ばれ、最初の日と最後の日も選ばれる可能性があります。
日付はブラウザの中で作成され、どこにも送信されません。
使い方
- 「開始日」に選べる最初の日を、「終了日」に最後の日を指定します。初期設定は2026年の1年間です。
- 「個数」に必要な日付の数を設定します。最大1,000件です。
- 「書式」を選びます。
2026-10-04(ISO 8601。並べ替えやデータベースに最適)2026年10月4日2026年10月4日日曜日10/04/2026(米国式):月が先04/10/2026(英国・EU 式):日が先
- 「並び順」を「出た順」「古い順」「新しい順」から選びます。
- 「オプション」で、必要に応じて「重複なし」「平日のみ」「時刻を含める」をオンにします。
- 「結果の区切り」を選び、「日付を生成」を押します。
日付が1つの場合は、「結果」の下に大きく表示されます。複数の場合は、その下の欄に一覧が表示されます。「コピー」を押すと日付をコピーできます。「最近の結果」には、ページを離れるか「クリア」を押すまで、直近10回分の結果が残ります。
月名と曜日を書く2つの書式は、ブラウザーの国際化機能(Intl)でページの言語に合わせて表示されます。日本語のページでは「2026年10月4日」「2026年10月4日日曜日」のような日本語の表記になります。数字だけで年・月・日の順に並べたい場合は、ISO 形式を選んでください。2026/10/04 のようにスラッシュ区切りにしたい場合は、生成した一覧のハイフンをスラッシュに置き換えてください。
生成例
以下の例はすべて、このページを動かしているコードの実際の出力です。
| 設定 | 実行結果の一例 |
|---|---|
| 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件、英国・EU 式 | 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日ですが、英国の人が書いた 08/12/2026 は12月8日を意味します。異なる国の人やプログラムが読む日付なら、ISO 形式を使えばこうした混乱を避けられます。
仕組み
ツールは、指定された2つの日付を、1970年1月1日からの日数に変換します。次に、その2つの日数の間からランダムな整数を選び、日付に戻します。日単位で計算するため、うるう年の2月29日を含むすべての日付が同じ確率になり、短い月が余分に重み付けされることもありません。
乱数は、ブラウザに組み込まれた安全な乱数生成機能 crypto.getRandomValues から取得します。その値は棄却サンプリングで範囲に割り当てられます。一部の日がわずかに選ばれやすくなるような値は捨てて引き直します。これにより、単純な余りの計算で生じる小さな偏りがなくなります。
「平日のみ」は、まず期間内の月曜日から金曜日をすべて一覧にし、その一覧から選びます。「時刻を含める」は、00:00:00 から 23:59:59 までのランダムな1秒を加えます。「重複なし」は、同じ日が2回選ばれないようにします。
日付はすべてタイムゾーンを持たない単純なカレンダー上の日付なので、別の場所に貼り付けても1日ずれることはありません。
活用例
- テストデータ。 デモやデータベースの初期データ用に、注文日、登録日、期限日を埋めます。
- 抽出調査。 記録の監査、ログの確認、抜き打ち検査のために、ランダムな日を選びます。
- 計画。 チームランチのサプライズの日や、避難訓練をする日をランダムに決めます。
- 授業。 生徒にランダムな日付を出し、何曜日かを考えさせます。答え合わせには曜日付きの書式を使います。
- ゲームや作文のお題。 歴史上の日付を1つ選び、その日に起きたかもしれないことを書きます。
ヒントと制限
- 祝日は除外されません。 「平日のみ」で除かれるのは土曜日と日曜日だけで、祝日や振替休日は含まれたままです。
- 重複しない日付が多すぎる場合。 「重複なし」がオンで、期間に含まれる日数より多くの日付を指定すると、短い一覧ではなくメッセージが表示されます。「平日のみ」の場合は、選べるすべての平日を返し、その旨を表示します。
- 時刻はランダムで、実在のものではありません。 時刻は24時間の中から均等に選ばれるので、深夜の時刻も業務時間と同じ確率で出ます。
- 表計算ソフト。 Excel やスプレッドシートは 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年のランダムな日が得られます。
関連ツール
日付全体ではなく月を選ぶには、ランダム月生成ツールを使ってください。単純なランダムな数字が必要なら、乱数生成ツールを使ってください。