隨機日期產生器會從西元 0001 年到 9999 年之間任一含首尾日期的區間中,抽出最多 1,000 個格式嚴格的 YYYY-MM-DD 西元日期,這使得它成為產生角色檔案隨機生日、測試註冊表單、填入範例資料集,或為虛構年齡提供種子的可靠方式。每個結果都是真實的西曆日期,而非時間戳記加上時區位移,因此產生器在日光節約時間切換時絕不會跳過或重複日期。瀏覽器會透過 UTC Date 元件回讀年、月、日來驗證每個輸入,這代表格式錯誤的輸入(例如 2025-04-31)會被拒絕,而非悄悄向前滾入五月。Web Crypto 的無符號 32 位元字提供隨機性,而拒絕抽樣消除了模數偏誤,否則會讓某些日期多出一個可能的來源值。一切都在您的瀏覽器中執行,任何範圍或產生的清單都不會被上傳,您可以在關閉分頁前複製或記錄結果。

generate random date of birth
為任何含首尾日期的區間產生隨機生日

為何生日隨機化工具需要嚴格驗證

「隨機生日」這個詞聽起來很簡單,但您收到的年、月、日,只有在驗證規則與下游系統強制執行的規則相符時,才會感覺是隨機的。許多快速腳本是將隨機毫秒數加到基準日期,然後格式化結果。這種做法會悄悄誤處理兩個日曆現實:非閏年的二月 29 日,以及日光節約時間春季往前調時消失的那一個小時。建立在這種腳本之上的角色年齡或 QA 測試固定資料,可能會落在不可能的生日,例如 2023-02-29,或在三月或十一月為處於日光節約時區的使用者跳過一個日曆日。

隨機日期產生器透過將每個日期視為相對於 1970-01-01 UTC 的整數序數,再從該整數空間均勻取樣,來迴避這兩個問題。驗證遵循 ECMAScript Date 實作的西曆規則:可被 4 整除的年份為閏年,世紀年除非可被 400 整除否則為平年,像 2025-04-31 這類溢位會被拒絕而非自動修正。結果是一份下游表單、年齡門檻及分析腳本都能毫無意外接受的日期清單。

輸入結果原因
2024-02-29接受2024 可被 4 整除
2000-02-29接受2000 可被 400 整除
1900-02-29拒絕世紀年無法被 400 整除
2023-02-29拒絕2023 不是閏年
2025-04-31拒絕四月只有 30 天

如何產生隨機生日

  1. 開啟隨機日期產生器,在 YYYY-MM-DD 欄位中挑選有效的起始日期與結束日期。兩個端點都合資格,因此從 1960-01-01 到 2005-12-31 的範圍可以回傳任一邊界。
  2. 輸入介於 1 到 1,000 之間的數量,即您希望單次產生幾個生日。
  3. 決定是否允許重複。若是獨立抽樣(例如在母體抽樣中,50 個生日可接受重複),請保持允許重複。當每個角色、使用者或測試資料列都需要唯一生日時,請關閉重複。
  4. 點擊產生。結果清單、顯示的範圍與數量會一起顯示,讓您在依賴該清單前,先驗證產生它的設定。
  5. 複製或記錄數值。編輯任一端點、數量或重複切換時,會清空先前的清單,因此舊的結果不會殘留在畫面上,看起來像是符合新的控制項。

含端點、閏日與 UTC 序數

含端點選取是讓大多數隨手寫腳本的人栽跟頭的規則。區間 [start, end] 包含所有 start 小於或等於 date,且 date 小於或等於 end 的日期,這代表剛好涵蓋三天的範圍可以合理地回傳三個不同的值,而沒有差一錯誤。閏日處理對於想要 2000-02-29 生日的角色創造者,或在世紀邊界測試年齡邏輯的 QA 工程師而言很重要。

抽樣的數學值得了解,因為它能說明為何產生器在時鐘變更時不會飄移。每個 YYYY-MM-DD 輸入會透過 UTC Date 物件的 setUTCFullYear 解析,回讀年、月、日,產生的序數即 UTC 毫秒值除以精確的 86,400,000。將 32 位元 Web Crypto getRandomValues 字映射到序數使用的是拒絕抽樣:只接受大小為範圍精確倍數的最大前導區間,然後以模數縮減將其映射到序數。因此每個日期擁有相同數量的潛在來源值,這就是實務上「均勻」的意義。本工具不使用 Math.random,若瀏覽器反覆回傳落入拒絕尾端的值,有界防護會報告隨機來源失敗。

模式行為限制
重複模式每次抽樣獨立從完整含端點範圍取樣同一日期可能出現多次
唯一模式稀疏的 Fisher-Yates 部分選擇,無放回要求的數量不可超過範圍中的天數
單日範圍一律回傳該單一日期若要重複結果,需使用重複模式
隨機性來源Web Crypto Uint32 值搭配拒絕抽樣絕不使用 Math.random

隨機生日實際上有用的地方

隨機生日產生器的實用清單比這個詞聽起來的更長。建立角色陣容的作家可以鎖定寬廣的年齡區間——例如 1975-01-01 到 2005-12-31——並要求 20 個不重複的生日,讓兩位主角不會同年出生。在為註冊表單建立種子資料時,QA 團隊可以要求 1940-01-01 到 2010-12-31 之間的 200 個生日,以測試後端的年齡門檻、同意流程與生日驗證。主持桌上角色扮演遊戲的遊戲主持人可以預先擲出幾十個 NPC 生日,作為血統錨點而無需手動處理。在所有情況下,同一個限制皆適用:星期幾、公眾假日及組織特定的黑名單日期並未過濾,因此這些檢查仍屬於呼叫端的責任。

輸出也適用於寫作提示、課堂練習與小型展示,這些場景中資料必須看起來真實,但不能關聯到真人。由於清單完全在您的瀏覽器中產生,您可以將結果貼到試算表、資料庫種子檔或 Markdown 角色表中,不必擔心這些日期被傳送到遠端服務。當您需要的不是均勻抽樣,而是連續序列時——例如戰役時間軸中的每一天——日期清單產生器可產生具有所選日步進的精確含端點序列,這是不同形狀的問題,也是不同的工具。

將抽樣器與實際工作流程搭配

有些工作流程要求明天以不同結果重複相同的抽樣,有些則要求固定的、可重現的清單。瀏覽器工具不對其 Web Crypto 來源設定種子,因此重新執行不會重現先前的清單。對於可重現的測試,請儲存您產生的日期,或執行您自己的種子化產生器。對於一次性生日產生作業,請在結果出現後立即複製。若您需要延伸作業——例如將每個隨機生日對應到星期幾,用於學校出勤表——關於從任何範圍產生隨機日期的相關指南會以星期幾連接為導向,說明相同的含端點範圍方法。

當生日本身不重要,只需要均勻整數用於下游年齡計算時,請將抽樣器與隨機數字產生器搭配使用。當每個產生的生日需要從預先寫好的清單中分配給一個角色時,請將它與隨機姓名挑選轉盤搭配。這些工具彼此獨立;日期清單與姓名清單不需要同時抽出。

瀏覽器抽樣器的誠實限制

這是一個嚴謹的瀏覽器抽樣器,而非經認證的隨機抽籤服務。它不會排除週末、公眾假日或組織的黑名單日期,且產生的日期沒有時段或時區位移。對於具有財務、法律、競賽、安全或稽核後果的公平抽籤,請使用具備獨立監督與留存證據的書面化程序。對於可重現的軟體測試,請擷取您產生的日期,而非依賴瀏覽器重現它們。對於真實的註冊表單,絕對不要將隨機生日貼到期望已驗證身分的系統中;這裡的日期是逼真的,而非真實的,本工具的存在是為了支援一般實用工作——測試固定資料、範例資料集、寫作提示、隨機化練習與展示——而非用來取代公證紀錄。

若要深入了解,請參閱批次隨機 IP 產生器:最多 100 個安全位址

若要深入了解,請參閱一鍵在 JavaScript 中產生隨機字元