
实验•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。但它解決了一個真實的問題,而且解決得夠好——對方用了之後反映「很好用」。
這個經驗讓我更相信:工具的價值在於它是否解決了真實問題,而不是用了多少技術。