Skip to content

Latest commit

 

History

History
115 lines (80 loc) · 7.02 KB

File metadata and controls

115 lines (80 loc) · 7.02 KB
SecRandom

SecRandom

A random-selection tool for classrooms and teams, with configurable workflows, managed history, and verifiable draw records.

GitHub Issues Latest Release Pre-release Last Update Downloads

QQ Group Bilibili License: GPL v3

Language [ 简体中文 | English | 日本語 ]

Note

SecRandom is released under GNU GPLv3. You may modify and redistribute the source, but derivative redistributions must also use GNU GPLv3.

SecRandom

SecRandom is a fair random-selection application for classrooms, teams, events, decision-making, and other scenarios.

Features

Draw workflows

  • Roll call: Supports standard random, history-balanced, and repeat-control draws.
  • Quick draw: Quickly draws students through a standalone floating window.
  • Lottery: Supports prize-wheel and inventory draws, with students and prizes managed independently.
  • Rich presentation: Provides unified settings for animation, results, speech, music, and notifications, with fallback when a notification fails.

Fairness and list management

  • Dynamically adjusts weights using history count, draw interval, group, gender, and other factors to reduce repeats and distribution imbalance.
  • Uses stable internal identifiers to preserve history; student numbers, IDs, and names are display information only.
  • Supports multiple student lists, prize pools, and .xlsx, .xls, .csv import, mapping, and preview.
  • Saves history for every draw round for convenient review.

Reviewable draw results

  • Every draw automatically saves a proof record file.
  • You can choose to involve the server in and witness the draw process.
  • Draw results can be checked again through official channels.

Data, privacy, and security

  • Settings, lists, and history can all be imported, exported, backed up, and restored.
  • Backups may include lists, history, draw proofs, images, and audio, but never passwords or other security information.
  • Password, TOTP, or USB-drive protection can secure important operations, and you can choose which operations require verification.

Verification boundaries

Mode What it can do What it cannot prove
Offline proof Review a completed draw process It is not a pre-draw server witness; it cannot prove that the local program or real-world roster was not modified
Online witnessing Protect the draw flow after the server locks it It cannot prove that the roster is authentic, complete, or unfiltered before submission

Technical evolution

Version Stack Stage
v1 Python + PyQt5 + qfluentwidgets First desktop implementation
v2 Python + PySide6 + qfluentwidgets Qt stack evolution
v3 C# + Avalonia + FluentAvalonia .NET desktop rewrite for continued draw, verification, and desktop-integration development

Download and updates

  • GitHub Releases provides release packages and change notes.
  • The official download page provides the latest download entry point.
  • Automatic updates validate a signed release manifest and artifact length/hash before deployment. Refer to the package and notes supplied with each release for installation details.

License and third-party notices

  • SecRandom is released under GNU GPLv3.
  • See THIRD-PARTY-NOTICES.md for third-party components, copyright information, and distribution-review notes.
  • History-balanced weights and candidate filters help reduce repeat selections and improve long-term distribution. They do not replace management of real-world rosters, rules, or processes, and SecRandom does not claim to verify those conditions.

Contributors and special thanks

SecRandom contributors

Thank you to everyone who contributes code, reports issues, improves documentation, or provides feedback. The avatars are generated from GitHub contributor data; select them to open the GitHub contributors page for complete statistics.

Support and community

Star History

Star History Chart

Copyright © 2025-2026 SECTL