{"id":35133389,"url":"https://github.com/sectl/secrandom","last_synced_at":"2026-02-14T12:06:30.039Z","repository":{"id":283787800,"uuid":"952515661","full_name":"SECTL/SecRandom","owner":"SECTL","description":"一个易用的点名/抽奖软件，专为教育场景设计，让课堂点名更高效透明！","archived":false,"fork":false,"pushed_at":"2026-01-28T12:13:22.000Z","size":38332,"stargazers_count":112,"open_issues_count":8,"forks_count":17,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-01-29T05:31:55.084Z","etag":null,"topics":["pyside6","python","qfluentwidgets"],"latest_commit_sha":null,"homepage":"https://secrandom.sectl.top","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SECTL.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG/v1.3.2-alpha.1/CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-21T12:08:06.000Z","updated_at":"2026-01-28T12:13:25.000Z","dependencies_parsed_at":null,"dependency_job_id":"8a9a198b-a603-48bd-a915-e546306fd99f","html_url":"https://github.com/SECTL/SecRandom","commit_stats":null,"previous_names":["secrandom/secrandom","sectl/secrandom"],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/SECTL/SecRandom","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SECTL%2FSecRandom","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SECTL%2FSecRandom/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SECTL%2FSecRandom/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SECTL%2FSecRandom/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SECTL","download_url":"https://codeload.github.com/SECTL/SecRandom/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SECTL%2FSecRandom/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28939513,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-31T10:18:23.202Z","status":"ssl_error","status_checked_at":"2026-01-31T10:18:22.693Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["pyside6","python","qfluentwidgets"],"created_at":"2025-12-28T07:34:55.671Z","updated_at":"2026-02-14T12:06:30.033Z","avatar_url":"https://github.com/SECTL.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimage src=\"resources/secrandom-icon-paper.png\" width=\"128\" height=\"128\" /\u003e\n\n# SecRandom - 公平随机抽取系统\n\n🎯 **真正公平的抽取算法** | 🚀 **现代化教育工具** | 🎨 **优雅交互体验**\n\n[![GitHub Issues](https://img.shields.io/github/issues-search/SECTL/SecRandom?query=is%3Aopen\u0026style=for-the-badge\u0026color=00b4ab\u0026logo=github\u0026label=问题)](https://github.com/SECTL/SecRandom/issues)\n[![最新版本](https://img.shields.io/github/v/release/SECTL/SecRandom?style=for-the-badge\u0026color=00b4ab\u0026label=最新正式版)](https://github.com/SECTL/SecRandom/releases/latest)\n[![最新Beta版本](https://img.shields.io/github/v/release/SECTL/SecRandom?include_prereleases\u0026style=for-the-badge\u0026label=测试版)](https://github.com/SECTL/SecRandom/releases/)\n[![上次更新](https://img.shields.io/github/last-commit/SECTL/SecRandom?style=for-the-badge\u0026color=00b4ab\u0026label=最后更新时间)](https://github.com/SECTL/SecRandom/commits/master)\n[![下载统计](https://img.shields.io/github/downloads/SECTL/SecRandom/total?style=for-the-badge\u0026color=00b4ab\u0026label=累计下载)](https://github.com/SECTL/SecRandom/releases)\n\n[![QQ群](https://img.shields.io/badge/-QQ%E7%BE%A4%EF%BD%9C833875216-blue?style=for-the-badge\u0026logo=QQ)](https://qm.qq.com/q/iWcfaPHn7W)\n[![bilibili](https://img.shields.io/badge/-UP%E4%B8%BB%EF%BD%9C黎泽懿-%23FB7299?style=for-the-badge\u0026logo=bilibili)](https://space.bilibili.com/520571577)\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg?style=for-the-badge)](https://opensource.org/licenses/GPL-3.0)\n\n**语言选择** [ **✔简体中文** | [English](resources/README_EN.md) | [繁體中文](resources/README_ZH_TW.md) ]\n\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n![代码贡献统计](https://repobeats.axiom.co/api/embed/7d42538bcd781370672c00b6b6ecd5282802ee3d.svg \"代码贡献统计图表\")\n\n\u003c/div\u003e\n\n\u003e [!NOTE]\n\u003e\n\u003e SecRandom 本体将基于GNU GPLv3协议开源\n\u003e\n\u003e GNU GPLv3具有Copyleft特性，也就是说，您可以修改SecRandom的源代码，但是**必须将修改版本同样以GNU GPLv3协议开源**\n--------\n\n## 📖 目录\n\n- [SecRandom - 公平随机抽取系统](#secrandom---公平随机抽取系统)\n  - [📖 目录](#-目录)\n  - [🎯 为什么选择公平抽取](#-为什么选择公平抽取)\n  - [🌟 核心亮点](#-核心亮点)\n    - [🎯 智能公平抽取系统](#-智能公平抽取系统)\n    - [🎨 现代化用户体验](#-现代化用户体验)\n    - [🚀 强大功能集](#-强大功能集)\n    - [💻 系统兼容性](#-系统兼容性)\n  - [📥 下载](#-下载)\n    - [🌐 官方下载页面](#-官方下载页面)\n  - [📸 软件截图](#-软件截图)\n  - [🙏 贡献者和特别感谢](#-贡献者和特别感谢)\n  - [第三方依赖与代码](#第三方依赖与代码)\n    - [PythonNET-Stubs-Generator](#pythonnet-stubs-generator)\n  - [💝 捐献支持](#-捐献支持)\n    - [爱发电支持](#爱发电支持)\n  - [📞 联系方式](#-联系方式)\n  - [📄 官方文档](#-官方文档)\n  - [贡献指南与 Actions 构建工作流](#贡献指南与-actions-构建工作流)\n  - [✨ Star历程](#-star历程)\n\n## 🎯 为什么选择公平抽取\n\n传统的随机抽取往往存在\"重复抽取某些人，而另一些人长期不被抽中\"的问题。SecRandom 采用**智能动态权重算法**结合**平均值差值保护机制**，确保每位成员都能获得公平的抽取机会：\n\n- **避免重复抽取**：被抽中次数越多，再次被抽中的概率越低\n- **平衡小组机会**：确保不同小组的成员有均等的抽取机会\n- **性别均衡考虑**：在抽取过程中平衡不同性别的抽取频率\n- **冷启动保护**：新成员或长期未被抽中的成员不会因为权重过低而失去机会\n- **平均值过滤**：只允许抽取次数≤平均值的成员进入候选池，避免过度抽取\n- **最大差距保护**：当最大抽取次数与最小抽取次数差距超过阈值时，排除极值并重新计算，确保公平性\n- **候选池大小保障**：确保候选池不小于设定的最小人数，避免单人死循环\n- **可视化概率**：实时显示每位成员被抽中的概率，过程透明可信\n\n## 🌟 核心亮点\n\n### 🎯 智能公平抽取系统\n\n- ✅ **动态权重算法**：基于抽取次数、小组、性别等多维度智能计算权重，确保每位成员获得真正公平的抽取机会\n- ✅ **冷启动保护机制**：为新成员或长期未被抽中的成员提供权重保护，避免因初始权重过低而失去机会\n- ✅ **平均值差值保护**：结合平均值过滤和最大差距保护双重机制，有效避免极端不均的抽取结果\n- ✅ **灵活配置选项**：支持自定义差距阈值、最小候选池大小等核心参数，满足不同场景需求\n- ✅ **实时概率可视化**：直观展示每位成员被抽中的概率变化，让抽取过程完全透明可信\n\n### 🎨 现代化用户体验\n\n- ✅ **Fluent Design 优雅界面**：采用微软 Fluent Design 设计语言，支持浅色/深色主题自动切换\n- ✅ **便捷悬浮窗模式**：可随时呼出小型悬浮窗口进行快速抽取，不影响当前工作流程\n- ✅ **智能语音播报**：抽取结果自动语音播报，支持多种语音引擎和自定义音色设置\n\n### 🚀 强大功能集\n\n- ✅ **多样化抽取模式**：支持单人抽取、多人抽取、小组抽取、性别抽取等多种模式，满足不同场景需求\n- ✅ **智能历史记录**：自动记录抽取时间、结果等详细信息，支持按条件筛选和自动清理过期记录\n- ✅ **多名单管理系统**：支持导入/导出Excel名单，轻松管理多个班级或团队的成员信息\n\n### 💻 系统兼容性\n\n- ✅ **跨平台支持**：完美兼容 Windows 10/11 系统和主流 Linux 发行版\n- ✅ **多架构适配**：原生支持 x64 架构，适配不同硬件环境\n- ✅ **开机自启功能**：支持设置开机自动启动，随时可用（仅Windows系统）\n\n## 📥 下载\n\n### 🌐 官方下载页面\n\n- 📥 **[官方下载页面](https://secrandom.sectl.top/download.html)** - 获取最新稳定版本和测试版本\n\n## 📸 软件截图\n\n\u003cdetails\u003e\n\u003csummary\u003e📸 软件截图展示 ✨\u003c/summary\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"resources/ScreenShots/zh-cn/pick.png\" alt=\"点名界面\" height=\"400px\"/\u003e \u003cbr/\u003e \u003csub\u003e 点名界面 \u003c/sub\u003e \u003cbr/\u003e\n\u003cimg src=\"resources/ScreenShots/zh-cn/lottery.png\" alt=\"抽奖界面\" height=\"400px\"/\u003e \u003cbr/\u003e \u003csub\u003e 抽奖界面 \u003c/sub\u003e \u003cbr/\u003e\n\u003cimg src=\"resources/ScreenShots/zh-cn/history.png\" alt=\"历史记录\" height=\"400px\"/\u003e \u003cbr/\u003e \u003csub\u003e 历史记录 \u003c/sub\u003e \u003cbr/\u003e\n\u003cimg src=\"resources/ScreenShots/zh-cn/pick_settings.png\" alt=\"抽取设置\" height=\"400px\"/\u003e \u003cbr/\u003e \u003csub\u003e 抽取设置 \u003c/sub\u003e \u003cbr/\u003e\n\n\u003c/div\u003e\n\n\u003c/details\u003e\n\n## 🙏 贡献者和特别感谢\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"11.11%\"\u003e\u003ca href=\"https://github.com/lzy98276\"\u003e\u003cimg src=\"data/assets/contribution/contributor1.png\" width=\"100px;\" alt=\"lzy98276\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003elzy98276 (黎泽懿_Aionflux)\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#content-lzy98276\" title=\"Content\"\u003e🖋\u003c/a\u003e \u003ca href=\"#design-lzy98276\" title=\"Design\"\u003e🎨\u003c/a\u003e \u003ca href=\"#ideas-lzy98276\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e \u003ca href=\"#maintenance-lzy98276\" title=\"Maintenance\"\u003e🚧\u003c/a\u003e \u003ca href=\"#doc-lzy98276\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"#bug-lzy98276\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"11.11%\"\u003e\u003ca href=\"https://github.com/chenjintang-shrimp\"\u003e\u003cimg src=\"data/assets/contribution/contributor2.png\" width=\"100px;\" alt=\"chenjintang-shrimp\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003echenjintang-shrimp\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#code-chenjintang-shrimp\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"11.11%\"\u003e\u003ca href=\"https://github.com/yuanbenxin\"\u003e\u003cimg src=\"data/assets/contribution/contributor3.png\" width=\"100px;\" alt=\"yuanbenxin\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eyuanbenxin (本新同学)\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#code-yuanbenxin\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#design-yuanbenxin\" title=\"Design\"\u003e🎨\u003c/a\u003e \u003ca href=\"#maintenance-yuanbenxin\" title=\"Maintenance\"\u003e🚧\u003c/a\u003e \u003ca href=\"#doc-yuanbenxin\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"11.11%\"\u003e\u003ca href=\"https://github.com/LeafS825\"\u003e\u003cimg src=\"data/assets/contribution/contributor4.png\" width=\"100px;\" alt=\"LeafS\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eLeafS\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#doc-LeafS\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"#ideas-LeafS\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"11.11%\"\u003e\u003ca href=\"https://github.com/QiKeZhiCao\"\u003e\u003cimg src=\"data/assets/contribution/contributor5.png\" width=\"100px;\" alt=\"QiKeZhiCao\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eQiKeZhiCao (弃稞之草)\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#ideas-QiKeZhiCao\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e \u003ca href=\"#maintenance-QiKeZhiCao\" title=\"Maintenance\"\u003e🚧\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"11.11%\"\u003e\u003ca href=\"https://github.com/Fox-block-offcial\"\u003e\u003cimg src=\"data/assets/contribution/contributor6.png\" width=\"100px;\" alt=\"Fox-block-offcial\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eFox-block-offcial\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#bug-Fox-block-offcial\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"#testing-Fox-block-offcial\" title=\"Testing\"\u003e⚠️\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"11.11%\"\u003e\u003ca href=\"https://github.com/jursin\"\u003e\u003cimg src=\"data/assets/contribution/contributor7.png\" width=\"100px;\" alt=\"Jursin\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJursin\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#code-jursin\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#design-jursin\" title=\"Design\"\u003e🎨\u003c/a\u003e \u003ca href=\"#maintenance-jursin\" title=\"Maintenance\"\u003e🚧\u003c/a\u003e \u003ca href=\"#doc-jursin\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"11.11%\"\u003e\u003ca href=\"https://github.com/LHGS-github\"\u003e\u003cimg src=\"data/assets/contribution/contributor8.png\" width=\"100px;\" alt=\"LHGS-github\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eLHGS-github\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#doc-LHGS-github\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"11.11%\"\u003e\u003ca href=\"https://github.com/real01bit\"\u003e\u003cimg src=\"data/assets/contribution/contributor9.png\" width=\"100px;\" alt=\"real01bit\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ereal01bit\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#code-real01bit\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\n## 第三方依赖与代码\n\n本项目使用了以下第三方代码：\n\n### PythonNET-Stubs-Generator\n- **路径**：`vendors/pythonnet-stub-generator/`\n- **来源**：[MHDante/pythonnet-stub-generator](https://github.com/MHDante/pythonnet-stub-generator)\n- **许可证**：MIT License\n- **版权**\n  - Copyright (c) 2019 Robert McNeel \u0026 Associates\n  - Copyright (c) 2022 Dante Camarena\n- **状态**：修改了编译目标平台为 .NET 9.0\n- *注：原始 MIT License 文本保留在 `vendors/pythonnet-stub-generator/LICENSE.md` 中。*\n\n## 💝 捐献支持\n\n如果您觉得 SecRandom 对您有帮助，欢迎支持我们的开发工作！\n\n### 爱发电支持\n\n- 🌟 **[爱发电支持链接](https://afdian.com/a/lzy0983)** - 通过爱发电平台支持开发者\n\n## 📞 联系方式\n\n- 📧 [邮箱](mailto:lzy.12@foxmail.com)\n- 👥 [QQ群 833875216](https://qm.qq.com/q/iWcfaPHn7W)\n- 💬 [QQ 频道](https://pd.qq.com/s/4x5dafd34?b=9)\n- 🎥 [B站主页](https://space.bilibili.com/520571577)\n- 🐛 [问题反馈](https://github.com/SECTL/SecRandom/issues)\n\n## 📄 官方文档\n\n- 📄 **[SecRandom 官方文档](https://secrandom.sectl.top/doc/overview.html)**\n- [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/SECTL/SecRandom)\n\n## 贡献指南与 Actions 构建工作流\n\n查看我们的贡献指南来了解更多内容：\n\n- [简体中文贡献指南](./CONTRIBUTING.md)\n\n## ✨ Star历程\n\n\u003cpicture\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=SECTL/SecRandom\u0026type=Date\u0026theme=dark\"\u003e\n  \u003cimg alt=\"Star History\" src=\"https://api.star-history.com/svg?repos=SECTL/SecRandom\u0026type=Date\"\u003e\n\u003c/picture\u003e\n\n\n**Copyright © 2025-2026 SECTL**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsectl%2Fsecrandom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsectl%2Fsecrandom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsectl%2Fsecrandom/lists"}