Skip to content

Latest commit

 

History

History
199 lines (144 loc) · 13.3 KB

File metadata and controls

199 lines (144 loc) · 13.3 KB

SecRandom - Fair Random Selection System

🎯 Truly Fair Random Selection Algorithm | 🚀 Modern Educational Tools | 🎨 Elegant Interactive Experience

The Readme you are currently reading is translated by AI and reviewed by our developers. If you find any errors, please report it.

GitHub Issues Latest Release Latest Beta Last Update Downloads

QQ Group bilibili License: GPL v3

Language [ 简体中文 | ✔English | 繁體中文 ]

Code Contribution Statistics

Note

SecRandom will be open source under the GNU GPLv3 license

GNU GPLv3 has Copyleft characteristics, which means you can modify the source code of SecRandom, but must also open source the modified version under the GNU GPLv3 license


📖 Table of Contents

🎯 Why Choose Fair Selection

Traditional random selection often has the problem of "repeatedly selecting certain people while others are rarely selected". SecRandom uses an intelligent dynamic weight algorithm combined with average gap protection mechanism to ensure every member gets a fair chance of being selected:

  • Avoid Repeated Selection: The more times someone is selected, the lower their probability of being selected again
  • Balance Group Opportunities: Ensure members from different groups have equal selection opportunities
  • Gender Balance Consideration: Balance selection frequency of different genders during the selection process
  • Cold Start Protection: New members or those who haven't been selected for a long time won't lose opportunities due to low weight
  • Average Filtering: Only allow members with selection count ≤ average to enter the candidate pool, avoiding over-selection
  • Maximum Gap Protection: When the gap between max and min selection counts exceeds the threshold, exclude extremes and recalculate to ensure fairness
  • Candidate Pool Size Guarantee: Ensure the candidate pool is not smaller than the set minimum size, avoiding single-person dead loops
  • Probability Visualization: Real-time display of each member's selection probability, making the process transparent and trustworthy

🌟 Core Features

🎯 Intelligent Fair Selection System

  • Dynamic Weighting Algorithm: Intelligently calculates weights based on multiple dimensions including selection count, group, and gender, ensuring every member gets a truly fair chance
  • Cold Start Protection Mechanism: Provides weight protection for new members or those who haven't been selected for a long time, avoiding missed opportunities due to low initial weight
  • Average Gap Protection: Combines dual mechanisms of average filtering and maximum gap protection to effectively avoid extremely uneven selection results
  • Flexible Configuration Options: Supports customizing core parameters like gap threshold and minimum candidate pool size to meet different scenario needs
  • Real-time Probability Visualization: Intuitively displays probability changes for each member being selected, making the selection process completely transparent and trustworthy

🎨 Modern User Experience

  • Fluent Design Elegant Interface: Adopts Microsoft Fluent Design language, supporting automatic light/dark theme switching
  • Convenient Floating Window Mode: Can call up a small floating window for quick selection at any time, without affecting current workflow
  • Smart Voice Announcement: Automatically voice broadcasts selection results, supporting multiple voice engines and custom voice settings

🚀 Powerful Feature Set

  • Diverse Selection Modes: Supports single selection, multiple selection, group selection, gender selection, etc., meeting different scenario needs
  • Smart History Records: Automatically records detailed information such as selection time and results, supporting conditional filtering and automatic cleanup of expired records
  • Multi-list Management System: Supports importing/exporting Excel lists, easily managing member information for multiple classes or teams

💻 System Compatibility

  • Cross-platform Support: Perfectly compatible with Windows 7/10/11 systems and mainstream Linux distributions
  • Multi-architecture Adaptation: Natively supports x64 and x86 architectures, adapting to different hardware environments
  • Startup on Boot Function: Supports setting automatic startup on boot, always available (Windows only)

📥 Download

🌐 Official Download Page

📸 Software Screenshots

📸 Software Screenshots Display ✨

Pick Interface
Pick Interface
Lottery Interface
Lottery Interface
History Records
History Records
Pick Settings
Pick Settings

🙏 Contributors and Special Thanks

lzy98276
lzy98276 (黎泽懿_Aionflux)

🖋 🎨 🤔 🚧 📖 🐛
chenjintang-shrimp
chenjintang-shrimp

💻
yuanbenxin
yuanbenxin (本新同学)

💻 🎨 🚧 📖
LeafS
LeafS

📖
QiKeZhiCao
QiKeZhiCao (弃稞之草)

🤔 🚧
Fox-block-offcial
Fox-block-offcial

🐛 ⚠️
Jursin
Jursin

💻 🎨 🚧 📖
LHGS-github
LHGS-github

📖
real01bit
real01bit

💻

Third-Party Dependencies and Code

This project uses the following third-party code:

PythonNET-Stubs-Generator

  • Path: vendors/pythonnet-stub-generator/
  • Source: MHDante/pythonnet-stub-generator
  • License: MIT License
  • Copyright
    • Copyright (c) 2019 Robert McNeel & Associates
    • Copyright (c) 2022 Dante Camarena
  • Status: Modified compilation target platform to .NET 9.0
  • Note: The original MIT License text is preserved in vendors/pythonnet-stub-generator/LICENSE.md.

💝 Support Us

If you find SecRandom helpful, you're welcome to support our development work!

Afdian Support

Caution

Afdian is a Chinese-based donation platform. You may not use Afdian out of mainland China.

📞 Contact

📄 Official Documentation

Contributing Guidelines and Actions Build Workflow

Check out our Contributing Guidelines to learn more:

✨ Star History

Star History

Copyright © 2025-2026 SECTL