幸運抽獎工具
實驗2026年1月18日

幸運抽獎工具

一個單一 HTML 檔案的公平抽獎工具。發現公司某單位有需求,臨時幫忙做的,意外地受到重視,真的拿去辦活動用了。

維護中HTMLCSSJavaScriptWeb Crypto API零依賴

為什麼做這個?

為了公司某單位要辦抽獎活動打造。做成單一 HTML 檔,不需要安裝、不需要伺服器,丟給任何人都能直接用瀏覽器打開。

原本只是臨時幫忙,沒想到後來真的拿去辦活動,感覺還挺不錯的。

功能

  • 公平抽獎:Fisher-Yates 洗牌演算法 + crypto.getRandomValues()(密碼學安全的隨機數,符合 NIST SP 800-90A)
  • 客製化:活動標題、LOGO、背景色、強調色,全部可以在設定模式調整
  • 抽獎動畫:名字滾動效果,增加緊張感(可關閉)
  • 歷史紀錄:自動保存最近 9 筆,可還原
  • 資料持久化:設定、名單、結果存在 localStorage,重新整理不會消失

技術說明

零依賴、零 npm、零後端。整個工具就是一個 .html 檔案,所有 CSS 和 JS 都 inline 在裡面。

為了讓同事放心「結果是真的隨機」,README 裡特別寫了一份資安審查說明——解釋演算法公平性、隨機數來源、以及「程式不會發送任何網路請求」。

心得

有時候最快的解法,反而是最有用的解法。

這個工具從想法到可用版本很快就完成了,沒有框架、沒有打包工具、沒有 CI/CD。但它解決了一個真實的問題,而且解決得夠好——對方用了之後反映「很好用」。

這個經驗讓我更相信:工具的價值在於它是否解決了真實問題,而不是用了多少技術。