随机选择器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_15292d5a/yjkj-cn-random-picker。
技能介绍
要解决什么问题
团队点名、活动抽签、测试数据里「公平地选一个或多个」——用 random.randint 或手写洗牌很容易在权重、不重复和可审计的随机性上踩坑:同一轮里已中奖的选项又被抽到、多人同时抽取时逻辑混乱、或者随机源太弱被人质疑「是不是内定」。
技能如何工作
cn-random-picker(SKILL 内名:随机选择器)是一个仅依赖 Python 标准库的随机抽取逻辑,面向「逗号分隔的选项列表」这类输入。
- 随机抽取:从多个候选里选出一个结果。
- 多人抽取:一次产出多个互不重复的结果,适合「抽 N 人」而不是反复点一次抽一个。
- 权重模式:每个选项可配置不同权重,高频/高优先级候选不必靠手工重复名单。
- 去重保证:已在本轮(或会话逻辑内)抽中的选项不会再次命中,避免重复中奖。
- 公平模式:使用标准库
secrets模块生成随机性,偏向密码学安全的随机源,而不是可预测的伪随机演示级实现。
典型用法形态:输入如 张三,李四,王五,输出会标明抽中对象(示例中为「李四」)。运行环境要求 Python 3.6+,无外部依赖,适合脚本、本地小工具或 Agent 在对话里代你执行抽签步骤。
适用边界与注意点
- 分类上偏生活工具(抽奖、抽签、lottery),不是分布式抽奖平台;名单解析、权重配置的具体字段以 SKILL 约定为准,复杂业务规则仍需你在上游整理好选项。
secrets解决的是随机源质量,不替代流程设计:公示规则、留存种子/日志、防篡改展示仍需你自己的合规与产品层。- 若只需要「随便一个数」而不关心权重与去重,用更轻的随机即可;当需要权重 + 批量不重复 + 更强随机时,这个技能更合适。
使用场景
- 班会或团建前,把报名名单用逗号拼成一行,让 Agent 按规则一次抽出若干不重复的中奖人。
- 产品内测名额有限,需要给不同渠道候选人设权重后公平抽选,避免手工重复写名单凑概率。
- 写自动化脚本做压测或演示数据时,要从固定候选池里随机点名,且同一轮已选中的名字不能再出现。
- 线上抽奖答疑环节,主持人输入多个选项,要求用密码学级随机源单次公布结果,减少「脚本随机」质疑。
适合人员
- 负责线下活动签到与抽奖流程的运营,需要在对话里快速完成「抽 N 人且不重复」并宣读结果。
- 用 Python 写小工具或 Notebook 的数据/测试工程师,希望零第三方依赖就能做带权重的随机点名。
- 班主任或社团负责人,经常从学生名单里抽签分工或选人回答问题,名单格式简单、规则要直观。
- 在 Agent 工作流里封装生活类能力的独立开发者,要把抽签逻辑做成可复用、可说明「公平随机」的技能模块。