隨機單字產生器會從一份精心策劃、超過 300 個名詞、動詞和形容詞的清單中,透過純 JavaScript 的 Fisher-Yates 洗牌演算法抽取最多 50 個不重複的英文單字,整個過程完全在你的瀏覽器中執行。因此你不必自己撰寫任何函式、陣列或迴圈,就能用 JavaScript 產生隨機單字。每一次抽樣都會重新洗牌並以不放回方式取樣,確保同一組結果中的每個單字都不會重複;首次點擊「Generate(產生)」所得到的隨機性,與你手寫一個以 Math.random() 為基礎的挑選器所獲得的效果相同。這個頁面將單字清單直接內嵌於 HTML 中,篩選器會在洗牌前先縮減候選範圍,而洗牌後陣列的前 N 個單字就是你的輸出結果。整個過程沒有任何資料離開你的裝置、不會連線到任何伺服器,你也不需要安裝 Node.js、開啟主控台,或把任何東西貼進程式碼編輯器。這讓本工具成為搜尋「如何在 JavaScript 中產生隨機單字」、但真正目的是立刻拿到一份可用單字清單的使用者最快取得結果的途徑,省去研讀隨機性教學的時間。

how to generate random words in javascript
how to generate random words in javascript

隨機單字產生器背後的 JavaScript 究竟做了什麼

一個標準的、手寫的 JavaScript 隨機單字函式,通常會從一個字串陣列開始,使用 Math.floor(Math.random() * words.length) 選出一個隨機索引,再把該單字推進結果清單中。真正的挑戰在於避免重複、套用篩選條件,並確保每個單字都有相同的出現機會。隨機單字產生器正好實作了這套流程:

  • 把超過 300 個常見英文單字的主要清單存放在一個常數陣列中,並隨頁面一起載入。
  • 在抽樣之前,把任何已選取的詞性、長度區間與起始字母當作篩選條件來套用。
  • 對篩選後的陣列執行一次無偏差的 Fisher-Yates 洗牌,這是在 JavaScript 中進行洗牌的標準正確做法。
  • 從洗牌後的陣列中切出前 N 個單字,並作為本次抽樣結果回傳。

最終結果等同於把對應的程式碼複製到 script 標籤中執行,只是樣板程式碼、測試清單與重複預防都已經幫你處理好了。

可在抽樣前組合使用的篩選器

在你按下「Generate」之前,最多可以疊加三個篩選器,工具會依以下順序套用:詞性、長度區間,然後是起始字母。每個篩選器都會進一步縮減符合條件的範圍,讓你取得的單字能貼近需求。

篩選器選項適用時機
詞性名詞、動詞、形容詞符合文法位置、組裝句子,或在字彙練習中鎖定單一詞性
長度區間短(3–4 個字母)、中(5–6)、長(7 個以上)對應難度等級、符合填字遊戲格子,或在詩歌提示中控制節奏
起始字母A–Z 的任意字母為頭韻定調、縮小拼字清單範圍,或將分類遊戲聚焦在單一字母上

篩選器可以組合使用,因此想取得六個以 C 開頭的長形容詞,只需選擇 Adjective、Long,並在起始字母框中輸入 C 即可。如果合併後的範圍小於你要求的數量,工具會回傳所有符合條件的單字,而不會用重複的結果來湊數。

如何在 JavaScript 中產生隨機單字(逐步教學)

  1. 在瀏覽器中開啟隨機單字產生器。無需註冊、無需安裝,頁面載入完成後也能離線使用。
  2. 設定數量。選擇 1 到 50 之間的任意整數——這是硬性上限,最小批次為一個單字。
  3. 如果需要的話,選擇詞性。名詞、動詞、形容詞是三個選項;留空不選則代表同時納入三種詞性。
  4. 如果想進一步縮小範圍,可以選擇長度區間或輸入起始字母。兩者皆為選用項目,可與詞性疊加。
  5. 點擊 Generate。頁面會對篩選後的範圍執行 Fisher-Yates 洗牌,並逐行列印前 N 個單字。
  6. 閱讀清單。如果結果不盡理想,調整數量或修改篩選條件後再次點擊 Generate——每次按下都會從頭重新洗牌。
  7. 點擊 Copy 複製清單。剪貼簿中會收到純文字,每行一個單字,可直接貼入文件、對話視窗或遊戲提示中。

隨機單字真正派上用場的時機

作家、學生、老師與開發者在出乎意料的各種情境中都會借用隨機單字,下表整理了最常見的情境,並建議較合適的篩選器組合。

使用情境建議篩選組合為何有效
突破寫作瓶頸不設篩選,數量 1–5一個突如其來的單字常能點燃一段落、一首詩或一段自由寫作
畫圖猜字或比手畫腳僅名詞,數量 10名詞比動詞更容易畫出來,也集中在單一可辨識的類別中
學習者的字彙練習形容詞、中等長度,數量 8常見的中等長度形容詞適合拼字清單與閱讀程度練習
品牌與產品命名不設篩選,數量 15較大的範圍能提供更多可搭配、重新組合的素材
變數、檔案或寵物命名任意長度,數量 10簡短且易發音的字串可直接貼入程式碼編輯器與命名對話框

同一套抽樣機制就能支援上述所有情境。差別在於篩選設定,而非底層的 JavaScript 邏輯。撰寫提示的作家可以全部篩選條件都不設,以追求最大的意外感;進行拼字練習的老師可以鎖定長度區間,確保不同回合之間難度一致;品牌命名者通常會要求較大的批次,以便有足夠素材互相搭配、重新組合。

為何使用瀏覽器版本勝過自己動手寫

當一個五行的 JavaScript 片段就能從陣列中挑選單字時,對於為何要使用線上工具感到好奇是合理的。幾個務實的理由很快就會浮現:

  • 單字清單經過精心策劃。要建立一份超過 300 個、詞性比例均衡的名詞、動詞與形容詞清單,比想像中更費工,而現成的陣列往往偏技術性或特定領域。
  • 重複預防已內建完成。一段單純的迴圈若反覆呼叫 Math.random() 直到取得 N 個不重複的結果,在範圍較小時可能會陷入停滯;Fisher-Yates 洗牌則能避開這個問題。
  • 篩選器可以自由組合。把詞性、長度與起始字母接入手寫函式會額外增加三個需要測試與維護的分支。
  • 隱私自動受到保障。頁面從不連線到任何伺服器,因此你抽到的單字不會被記錄、分析或儲存在任何地方。

如果你確實想研究 JavaScript 本身,可以開啟瀏覽器的開發者工具、檢視頁面原始碼,並閱讀內嵌的腳本。整個實作簡潔到能在單一畫面內看完,邏輯也與上方流程所描述的內容一致。

處理所取得清單的實用技巧

一旦複製了單字清單,一些小習慣可以讓它們更實用。請將它們貼進純文字編輯器,而不是文書處理軟體,這樣每個單字才能維持獨立的一行。如果想保留這一次的結果,請擷取螢幕畫面——每次按下 Generate 都會重新洗牌,因此在你變更篩選條件後,就再也無法取回先前的抽樣結果。

在較長的腦力激盪過程中,鎖定你的篩選條件並連續點擊 Generate 兩到三次;每次的單字雖然不同,但仍會落在同一主題範圍內,這對於想在受限風格中追求變化時特別有用。如果你想要重新洗牌一份你已收集好的現有清單,List Randomizer 工具可以在本地端重新排序,無需連線到任何伺服器。

如果你需要計算取得的數量,可以把清單貼進字數計算器或字元計算器。若需要進行排序、去重或反轉順序,文字排序工具或欄位轉逗號工具能在不外傳資料的情況下,對同一份清單進行重新整理。

想深入了解,請參閱以可驗證的數學計算閱讀時間

想深入了解,請參閱正確地在 Word 中檢查可讀性分數