| |  |  |  |  |  | AIWROK软件苹果IOS系统随机数[RJrxn1afZqW7yjf2NK]方法小结
                        ![AIWROK软件苹果IOS系统随机数[RJrxn1afZqW7yjf2NK]方法小结 群发软件发帖工具  AIWROK软件苹果IOS系统随机数[RJrxn1afZqW7yjf2NK]方法小结 群发软件发帖工具](static/image/common/none.gif)  复制代码// ... existing code ...
/*
🍎交流QQ群711841924群一,苹果内测群,528816639
🍎🔨LtUqFOGkc6随机小数生成函数
*/
// 🔨LtUqFOGkc6随机小数生成函数
// 📌LtUqFOGkc6随机小数生成函数
/*
类别 详情说明
方法功能 生成指定范围内的随机小数
方法签名 Double LtUqFOGkc6(Double min, Double max)
返回值 Double(生成的随机小数)
参数 - Double min:随机小数的最小值
     - Double max:随机小数的最大值
*/
function LtUqFOGkc6(min, max) {
    return Math.random() * (max - min) + min;
}
// 📌随机点击位置生成函数(修复版本)
/*
类别 详情说明
方法功能 在指定区域内生成随机点击坐标
方法签名 Object randClickPosition(Double left, Double top, Double right, Double bottom)
返回值 Object(包含x和y坐标的对象)
参数 - Double left:区域左边界
     - Double top:区域上边界
     - Double right:区域右边界
     - Double bottom:区域下边界
*/
function randClickPosition(left, top, right, bottom) {
    var x = LtUqFOGkc6(left, right);
    var y = LtUqFOGkc6(top, bottom);
    return {x: x, y: y};
}
// 使用示例:
printl("=== LtUqFOGkc6随机小数函数使用示例 ===");
// 生成0到1之间的随机小数
var randomDecimal1 = LtUqFOGkc6(0, 1);
printl("生成0-1之间的随机小数: " + randomDecimal1);
// 生成10到100之间的随机小数
var randomDecimal2 = LtUqFOGkc6(10, 100);
printl("生成10-100之间的随机小数: " + randomDecimal2);
// 生成随机延迟时间(1.5秒到3.5秒之间)
var delayTime = LtUqFOGkc6(1.5, 3.5);
printl("生成随机延迟时间: " + delayTime + "秒");
// 在点击操作中使用随机小数作为坐标
var x = LtUqFOGkc6(100.0, 500.0);
var y = LtUqFOGkc6(200.0, 800.0);
printl("生成随机坐标: (" + x + ", " + y + ")");
// 使用修复后的随机点击位置函数
var clickPos = randClickPosition(100.0, 200.0, 500.0, 800.0);
printl("生成随机点击位置: (" + clickPos.x + ", " + clickPos.y + ")");
// 更多随机数相关函数示例:
// 📌随机整数生成函数
/*
类别 详情说明
方法功能 生成指定范围内的随机整数
方法签名 Int32 randInt(Int32 min, Int32 max)
返回值 Int32(生成的随机整数)
参数 - Int32 min:随机整数的最小值
     - Int32 max:随机整数的最大值
*/
function randInt(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
}
// 📌随机布尔值生成函数
/*
类别 详情说明
方法功能 生成随机布尔值(true/false)
方法签名 Boolean randBool()
返回值 Boolean(生成的随机布尔值)
参数 无
*/
function randBool() {
    return Math.random() < 0.5;
}
// 📌随机数组元素选择函数
/*
类别 详情说明
方法功能 从数组中随机选择一个元素
方法签名 Object randChoice(Array arr)
返回值 Object(数组中的随机元素)
参数 - Array arr:源数组
*/
function randChoice(arr) {
    if (!arr || arr.length === 0) return null;
    var index = randInt(0, arr.length - 1);
    return arr[index];
}
// 📌随机颜色生成函数
/*
类别 详情说明
方法功能 生成随机颜色值
方法签名 String randColor()
返回值 String(十六进制颜色值)
参数 无
*/
function randColor() {
    var letters = '0123456789ABCDEF';
    var color = '#';
    for (var i = 0; i < 6; i++) {
        color += letters[Math.floor(Math.random() * 16)];
    }
    return color;
}
// 使用示例:
printl("=== 更多随机数方法使用示例 ===");
// 随机整数示例
var randomInteger = randInt(1, 100);
printl("生成1-100之间的随机整数: " + randomInteger);
// 随机布尔值示例
var randomBoolean = randBool();
printl("生成随机布尔值: " + randomBoolean);
// 随机数组元素示例
var fruits = ["苹果", "香蕉", "橙子", "葡萄", "草莓"];
var randomFruit = randChoice(fruits);
printl("从数组中随机选择: " + randomFruit);
// 随机颜色示例
var randomColor = randColor();
printl("生成随机颜色: " + randomColor);
// 综合应用示例:模拟用户随机操作
function simulateRandomUserActions() {
    printl("=== 模拟用户随机操作 ===");
    
    // 随机决定执行哪种操作
    var actions = ["点击", "滑动", "输入", "等待"];
    var action = randChoice(actions);
    
    switch(action) {
        case "点击":
            var pos = randClickPosition(0, 0, screen.getScreenWidth(), screen.getScreenHeight());
            printl("随机点击屏幕位置: (" + pos.x + ", " + pos.y + ")");
            // hid.click(pos.x, pos.y); // 实际点击操作
            break;
            
        case "滑动":
            var startPos = randClickPosition(100, 100, 400, 600);
            var endPos = randClickPosition(100, 100, 400, 600);
            printl("随机滑动从: (" + startPos.x + ", " + startPos.y + ") 到 (" + endPos.x + ", " + endPos.y + ")");
            // hid.swip(startPos.x, startPos.y, endPos.x, endPos.y, 50, 500, 1); // 实际滑动操作
            break;
            
        case "输入":
            var texts = ["Hello", "World", "AIWork", "Automation"];
            var text = randChoice(texts);
            printl("随机输入文本: " + text);
            // hid.inputSimple(text); // 实际输入操作
            break;
            
        case "等待":
            var waitTime = randInt(1000, 3000);
            printl("随机等待: " + waitTime + "毫秒");
            // sleep.millisecond(waitTime); // 实际等待操作
            break;
    }
}
// 执行模拟示例
simulateRandomUserActions();
printl("=== 随机数方法示例结束 ===");
// ... existing code ...
GQGqcAlZv2随机字符 | 类别 | 详情 |  | 功能描述 | 生成指定长度的随机字符 |  | 方法声明 | String GQGqcAlZv2(Int32 length) |  | 返回值类型 | String(生成的随机字符) |  | 参数说明 | - Int32 length:需要生成的随机字符长度 |  | 调用案例 | 1. 生成 10 位随机字符:var randomStr = GQGqcAlZv2 (10);2. 生成 5 位随机字符:var shortRandomStr = GQGqcAlZv2 (5);
 3. 在配置中使用:config.setConfig ("random_device_id", GQGqcAlZv2 (16));
 | 
 📌WBJqf91s7J随机整数 | 类别 | 详情 |  | 功能描述 | 随机整数 |  | 方法声明 | Int32 WBJqf91s7J(Int32, Int32) |  | 返回值类型 | Int32 |  | 参数说明 | Int32:起始;Int32:结束 |  | 调用案例 | rand.randNumber(1000,9999) | 
 📌LtUqFOGkc6随机小数 | 类别 | 详情 |  | 功能描述 | 生成指定范围内的随机小数 |  | 方法声明 | Double LtUqFOGkc6(Double min, Double max) |  | 返回值类型 | Double(生成的随机小数) |  | 参数说明 | - Double min:随机小数的最小值- Double max:随机小数的最大值
 |  | 调用案例 | 1. 生成 0-1 之间的随机小数:var randomDecimal1 = LtUqFOGkc6 (0, 1);2. 生成 10-100 之间的随机小数:var randomDecimal2 = LtUqFOGkc6 (10, 100);
 3. 生成 1.5-3.5 秒的随机延迟:var delayTime = LtUqFOGkc6 (1.5, 3.5);
 4. 生成随机坐标:var x = LtUqFOGkc6 (100.0, 500.0); var y = LtUqFOGkc6 (200.0, 800.0);
 5. 生成随机 OCR 区域:var left = LtUqFOGkc6 (0.1, 0.3); (top、right、bottom 类似)
 | 
 📌随机布尔值生成函数 | 类别 | 详情说明 |  | 函数名称 | randBool |  | 方法功能 | 生成随机布尔值 (true/false) |  | 方法签名 | Boolean randBool() |  | 返回值 | Boolean(生成的随机布尔值) |  | 参数 | 无 |  |  |  |  | 函数名称 | randBoolWithProbability |  | 方法功能 | 根据指定概率生成随机布尔值 |  | 方法签名 | Boolean randBoolWithProbability(Double probability) |  | 返回值 | Boolean(生成的随机布尔值) |  | 参数 | - Double probability:返回 true 的概率(0.0 到 1.0 之间) | 
 | 应用场景 | 示例代码 | 说明 |  | 基本随机布尔值生成 | var randomBoolean1 = randBool(); | 生成一个随机布尔值 |  | 生成多个随机布尔值 | for (var i = 0; i < 5; i++) {printl ("随机布尔值" + (i+1) + ":" + randBool ());
 }
 | 循环生成 5 个随机布尔值 |  | 带概率的随机布尔值 | printl ("30% 概率为 true:" + randBoolWithProbability (0.3));printl ("70% 概率为 true:" + randBoolWithProbability (0.7));
 printl ("90% 概率为 true:" + randBoolWithProbability (0.9));
 | 按照指定概率生成布尔值 |  | 随机决定操作执行 | function maybePerformAction() {if (randBool()) {
 printl ("执行操作 A");
 // 执行操作 A 的代码
 } else {
 printl ("执行操作 B");
 // 执行操作 B 的代码
 }
 }
 | 50% 概率执行操作 A,50% 概率执行操作 B |  | 基于概率决定功能启用 | function checkFeatureEnabled() {// 假设新功能有 20% 的概率启用
 var isNewFeatureEnabled = randBoolWithProbability(0.2);
 if (isNewFeatureEnabled) {
 printl ("新功能已启用");
 // 启用新功能的代码
 } else {
 printl ("使用默认功能");
 // 使用默认功能的代码
 }
 }
 | 20% 概率启用新功能,80% 概率使用默认功能 |  | 随机错误模拟 | function simulateRandomError() {// 假设有 10% 的概率出现错误
 if (randBoolWithProbability(0.1)) {
 printl ("模拟错误发生");
 // 错误处理代码
 return false;
 }
 printl ("操作成功");
 return true;
 }
 | 10% 概率模拟错误发生,90% 概率操作成功 |  | 随机化用户行为 | function simulateUserBehavior() {printl ("模拟用户行为:");
 // 用户有 70% 的概率点击按钮
 if (randBoolWithProbability(0.7)) {
 printl ("用户点击了按钮");
 } else {
 printl ("用户未点击按钮");
 }
 // 用户有 30% 的概率输入内容
 if (randBoolWithProbability(0.3)) {
 printl ("用户输入了内容");
 } else {
 printl ("用户未输入内容");
 }
 // 用户有 50% 的概率继续操作
 if (randBool()) {
 printl ("用户继续下一步操作");
 } else {
 printl ("用户退出操作");
 }
 }
 | 模拟不同概率的用户交互行为 |  | 配置随机化 | function setRandomConfigurations() {printl ("设置随机配置:");
 // 随机启用日志
 var enableLogging = randBool();
 config.setConfig("enable_logging", enableLogging.toString());
 printl ("日志启用:" + enableLogging);
 // 随机启用调试模式(20% 概率)
 var debugMode = randBoolWithProbability(0.2);
 config.setConfig("debug_mode", debugMode.toString());
 printl ("调试模式:" + debugMode);
 // 随机选择主题
 var darkTheme = randBool();
 config.setConfig("dark_theme", darkTheme.toString());
 printl ("深色主题:" + darkTheme);
 }
 | 随机配置系统参数,包括日志、调试模式和主题等 |  | 随机化自动化脚本行为 | function randomAutomationBehavior() { 
printl ("随机自动化行为:"); 
// 随机决定是否进行 OCR 识别 
if (randBool()) { 
printl ("执行 OCR 识别"); 
// OCR 识别代码 
// var ocrResult = screen.ocr(0, 0, 1, 1); 
} else { 
printl ("跳过 OCR 识别"); 
} 
// 随机决定是否截图 
if (randBoolWithProbability(0.8)) { 
printl ("执行截图"); 
// 截图代码 
// var screenshot = screen.screenShotFull(); 
} else { 
printl ("跳过截图"); 
} 
// 随机决定是否发送网络请求 
if (randBool()) { 
printl ("发送网络请求"); 
// 网络请求代码 
// var response = new OkHttp().get('https://example.com/api');} else {
 printl ("跳过网络请求");
 }
 }
 |  | 
 📌随机数组元素选择函数 | 类别
 | 详情说明
 |  | 函数名称
 | randArrayElement
 |  | 方法功能
 | 从数组中随机选择一个元素
 |  | 方法签名
 | Object randArrayElement(Array array)
 |  | 返回值
 | Object(数组中的随机元素)
 |  | 参数
 | - Array array:源数组
 |  |  |  |  | 函数名称
 | randArrayElements
 |  | 方法功能
 | 从数组中随机选择指定数量的元素
 |  | 方法签名
 | Array randArrayElements(Array array, Int32 count)
 |  | 返回值
 | Array(包含随机选择元素的数组)
 |  | 参数
 | - Array array:源数组 - Int32 count:需要选择的元素数量
 | 
 使用示例表
 | 应用场景
 | 示例代码
 | 说明
 |  | 基本使用示例
 | var colors = ["红色", "绿色", "蓝色", "黄色", "紫色"]; var randomColor = randArrayElement(colors); printl ("从颜色数组中随机选择:" + randomColor);
 | 从颜色数组中随机选择一个元素
 |  | 多次随机选择示例
 | printl ("连续 3 次随机选择颜色:"); for (var i = 0; i < 3; i++) { printl ("第" + (i+1) + "次选择:" + randArrayElement (colors)); }
 | 循环 3 次从颜色数组中随机选择元素
 |  | 随机选择多个元素示例
 | var selectedColors = randArrayElements(colors, 3); printl ("随机选择 3 种颜色:" + selectedColors.join (","));
 | 从颜色数组中随机选择 3 个不重复的元素
 |  | 随机选择应用进行操作
 | function randomAppOperation() { var apps = ["微信", "QQ", "淘宝", "微博", "抖音", "快手"]; var selectedApp = randArrayElement(apps); printl ("随机选择操作应用:" + selectedApp); //app.openApp (selectedApp); // 实际启动应用 }
 | 随机选择一个应用进行操作
 |  | 随机选择网络请求方法
 |  | 随机组合 HTTP 请求方法和 URL 地址
 |  | 随机选择 OCR 识别区域
 | function randomOCRRegion() { var regions = [ [0, 0, 0.5, 0.5], // 左上角区域 [0.5, 0, 1, 0.5], // 右上角区域 [0, 0.5, 0.5, 1], // 左下角区域 [0.5, 0.5, 1, 1], // 右下角区域 [0.25, 0.25, 0.75, 0.75] // 中心区域 ]; var region = randArrayElement(regions); printl ("随机 OCR 识别区域: [" + region.join (",") + "]"); return region; }
 | 从预设的区域中随机选择一个作为 OCR 识别区域
 |  | 随机选择点击策略
 | function randomClickStrategy() { var strategies = [ function () { printl ("执行普通点击"); }, function () { printl ("执行双击操作"); }, function () { printl ("执行长按操作"); }, function () { printl ("执行滑动操作"); } ]; var strategy = randArrayElement(strategies); strategy (); // 执行选中的策略 }
 | 随机选择一种交互操作策略并执行
 |  | 随机选择测试数据
 | function getRandomTestData() { var usernames = ["user123", "testuser", "demoaccount", "sampleuser"]; var passwords = ["password123", "testpass", "demo123", "samplepass"]; var emails = ["user@example.com", "test@mail.com", "demo@test.com"]; var userData = { username: randArrayElement(usernames), password: randArrayElement(passwords), email: randArrayElement(emails) }; printl ("随机测试数据:" + JSON.stringify (userData)); return userData; }
 | 从不同数组中随机选择数据组合成测试用户信息
 | 
 📌随机日期 | 类别
 | 详情说明
 |  | 函数名称
 | randomDate
 |  | 方法功能
 | 生成指定范围内的随机日期
 |  | 方法签名
 | Date randomDate(Date startDate, Date endDate)
 |  | 返回值
 | Date(生成的随机日期)
 |  | 参数
 | - Date startDate:随机日期的开始范围 - Date endDate:随机日期的结束范围
 |  |  |  |  | 函数名称
 | randomDateString
 |  | 方法功能
 | 生成指定格式的随机日期字符串
 |  | 方法签名
 | String randomDateString(Date startDate, Date endDate, String format)
 |  | 返回值
 | String(生成的随机日期字符串)
 |  | 参数
 | - Date startDate:随机日期的开始范围 - Date endDate:随机日期的结束范围 - String format:日期格式(如:"yyyy-MM-dd"、"yyyy/MM/dd HH:mm:ss")
 |  |  |  |  | 函数名称
 | formatDate
 |  | 方法功能
 | 将日期对象格式化为指定格式的字符串
 |  | 方法签名
 | String formatDate(Date date, String format)
 |  | 返回值
 | String(格式化后的日期字符串)
 |  | 参数
 | - Date date:要格式化的日期对象 - String format:日期格式(如:"yyyy-MM-dd"、"yyyy/MM/dd HH:mm:ss")
 | 
 使用示例表 | 应用场景
 | 示例代码
 | 说明
 |  | 基本随机日期生成示例
 | var startDate = new Date (2020, 0, 1); // 2020 年 1 月 1 日 var endDate = new Date (2025, 11, 31); // 2025 年 12 月 31 日 var randomDateResult = randomDate(startDate, endDate); printl ("生成随机日期:" + randomDateResult);
 | 生成 2020-2025 年间的随机日期
 |  | 随机日期字符串示例
 | var randomDateStringResult = randomDateString(startDate, endDate, "yyyy-MM-dd"); printl ("生成随机日期字符串 (yyyy-MM-dd):" + randomDateStringResult); var randomDateTimeString = randomDateString(startDate, endDate, "yyyy/MM/dd HH:mm:ss"); printl ("生成随机日期时间字符串:" + randomDateTimeString);
 | 生成指定格式的随机日期字符串,支持 "yyyy-MM-dd" 和 "yyyy/MM/dd HH:mm:ss" 等格式
 |  | 多次生成随机日期示例
 | printl ("连续生成 5 个随机日期:"); for (var i = 0; i < 5; i++) { var date = randomDate(startDate, endDate); printl ("随机日期" + (i+1) + ":" + formatDate (date, "yyyy-MM-dd HH:mm:ss")); }
 | 循环生成 5 个指定范围内的随机日期并格式化输出
 |  | 随机生成用户注册日期
 | function generateRandomUserRegistration() { var now = new Date(); var oneYearAgo = new Date(); oneYearAgo.setFullYear(now.getFullYear() - 1); var registrationDate = randomDate(oneYearAgo, now); printl ("用户随机注册日期:" + formatDate (registrationDate, "yyyy-MM-dd HH:mm:ss")); return registrationDate; }
 | 生成近一年内的随机用户注册日期
 |  | 随机生成订单日期
 | function generateRandomOrderDate() { var now = new Date(); var threeMonthsAgo = new Date(); threeMonthsAgo.setMonth(now.getMonth() - 3); var orderDate = randomDate(threeMonthsAgo, now); printl ("订单随机日期:" + formatDate (orderDate, "yyyy-MM-dd")); return orderDate; }
 | 生成近三个月内的随机订单日期
 |  | 随机生成生日
 | function generateRandomBirthday() { var startBirthday = new Date (1980, 0, 1); // 1980 年 1 月 1 日 var endBirthday = new Date (2005, 11, 31); // 2005 年 12 月 31 日 var birthday = randomDate(startBirthday, endBirthday); printl ("随机生日:" + formatDate (birthday, "yyyy-MM-dd")); return birthday; }
 | 生成 1980-2005 年间的随机生日日期
 |  | 随机生成日志时间
 | function generateRandomLogTime() { var now = new Date(); var oneWeekAgo = new Date(); oneWeekAgo.setDate(now.getDate() - 7); var logTime = randomDate(oneWeekAgo, now); printl ("日志随机时间:" + formatDate (logTime, "yyyy-MM-dd HH:mm:ss.SSS")); return logTime; }
 | 生成近一周内的随机日志时间,精确到毫秒
 |  | 随机生成项目开始和结束日期
 | function generateRandomProjectDates() { var now = new Date(); var oneYearLater = new Date(); oneYearLater.setFullYear(now.getFullYear() + 1); var projectStart = randomDate(now, oneYearLater); var projectEnd = new Date(projectStart); projectEnd.setMonth (projectStart.getMonth () + Math.floor (Math.random () * 12) + 1); // 1-12 个月后结束 printl ("项目开始日期:" + formatDate (projectStart, "yyyy-MM-dd")); printl ("项目结束日期:" + formatDate (projectEnd, "yyyy-MM-dd")); return {start: projectStart, end: projectEnd}; }
 | 生成未来一年内的项目开始日期,以及 1-12 个月后的结束日期
 |  | 随机生成历史事件日期
 | function generateRandomHistoricalDate() { var startDate = new Date (2000, 0, 1); // 2000 年 1 月 1 日 var endDate = new Date (); // 今天 var historicalDate = randomDate(startDate, endDate); printl ("随机历史事件日期:" + formatDate (historicalDate, "yyyy 年 MM 月 dd 日")); return historicalDate; }
 | 生成 2000 年至今的随机历史事件日期,使用中文格式输出
 | 
 使用示例表使用示例表| 类别 | 详情说明 |  | 函数名称 | randomColor |  | 方法功能 | 生成随机颜色值 |  | 方法签名 | String randomColor() |  | 返回值 | String(十六进制颜色值,格式为 #RRGGBB) |  | 参数 | 无 |  |  |  |  | 函数名称 | randomRGBColor |  | 方法功能 | 生成随机 RGB 颜色值 |  | 方法签名 | Object randomRGBColor() |  | 返回值 | Object(包含 r、g、b 属性的对象,每个属性值范围为 0-255) |  | 参数 | 无 |  |  |  |  | 函数名称 | randomRGBAColor |  | 方法功能 | 生成随机 RGBA 颜色值 |  | 方法签名 | Object randomRGBAColor() |  | 返回值 | Object(包含 r、g、b、a 属性的对象,r/g/b 范围 0-255,a 范围 0.00-1.00) |  | 参数 | 无 |  |  |  |  | 函数名称 | randomHSLColor |  | 方法功能 | 生成随机 HSL 颜色值 |  | 方法签名 | Object randomHSLColor() |  | 返回值 | Object(包含 h、s、l 属性的对象,h 范围 0-360,s/l 范围 0-100%) |  | 参数 | 无 | 
 | 应用场景 | 示例代码 | 说明 |  | 基本随机十六进制颜色生成 | var randomHexColor = randomColor();printl ("生成随机十六进制颜色:" + randomHexColor);
 | 生成格式为 #RRGGBB 的随机十六进制颜色值 |  | 基本随机 RGB 颜色生成 | var randomRGB = randomRGBColor();printl ("生成随机 RGB 颜色: rgb (" + randomRGB.r + "," + randomRGB.g + "," + randomRGB.b + ")");
 | 生成包含 r、g、b 属性的 RGB 颜色对象,并以rgb(r, g, b) 格式输出 |  | 基本随机 RGBA 颜色生成 | var randomRGBA = randomRGBAColor();printl ("生成随机 RGBA 颜色: rgba (" + randomRGBA.r + "," + randomRGBA.g + "," + randomRGBA.b + "," + randomRGBA.a + ")");
 | 生成包含 r、g、b、a 属性的 RGBA 颜色对象,并以rgba(r, g, b, a) 格式输出 |  | 基本随机 HSL 颜色生成 | var randomHSL = randomHSLColor();printl ("生成随机 HSL 颜色: hsl (" + randomHSL.h + "," + randomHSL.s + "%," + randomHSL.l + "%)");
 | 生成包含 h、s、l 属性的 HSL 颜色对象,并以hsl(h, s%, l%) 格式输出 |  | 多次生成随机颜色 | printl ("连续生成 5 个随机颜色:");for (var i = 0; i < 5; i++) {
 printl ("随机颜色" + (i+1) + ":" + randomColor ());
 }
 | 循环生成 5 个随机十六进制颜色值并输出 |  | 随机设置界面主题色 | function setRandomThemeColor() {var themeColor = randomColor();
 printl ("设置随机主题色:" + themeColor);
 // 在实际应用中,可以将这个颜色应用到界面元素上
 return themeColor;
 }
 | 生成随机十六进制颜色作为界面主题色 |  | 随机生成图表颜色 | function generateChartColors(count) {var colors = [];
 for (var i = 0; i < count; i++) {
 colors.push(randomColor());
 }
 printl ("生成图表颜色:" + colors.join (","));
 return colors;
 }
 | 根据传入的数量,生成对应个数的随机十六进制颜色数组(用于图表系列配色) |  | 随机生成按钮样式(背景 + 文字色) | function generateRandomButtonStyles() {var bgColor = randomColor();
 var textColor = randomColor();
 printl ("按钮背景色:" + bgColor + ", 文字颜色:" + textColor);
 // 在实际应用中,可以用于设置按钮样式
 return {backgroundColor: bgColor, textColor: textColor};
 }
 | 生成随机的按钮背景色和文字色组合,返回样式对象 |  | 随机生成渐变色 | function generateRandomGradient() {var color1 = randomColor();
 var color2 = randomColor();
 var gradient = "linear-gradient(45deg, " + color1 + ", " + color2 + ")";
 printl ("生成随机渐变:" + gradient);
 return gradient;
 }
 | 生成 45 度角的线性渐变色,使用两个随机十六进制颜色作为渐变起点和终点 |  | 随机生成半透明颜色 | function generateRandomTransparentColor() {var baseColor = randomColor();
 var alpha = (Math.random () * 0.8 + 0.2).toFixed (2); // 0.2-1.0 之间的透明度
 var transparentColor = baseColor + Math.floor(alpha * 255).toString(16);
 printl ("基础颜色:" + baseColor + ", 透明度:" + alpha + ", 半透明颜色:" + transparentColor);
 return transparentColor;
 }
 | 基于随机十六进制颜色,生成透明度 0.2-1.0 的半透明颜色(格式 #RRGGBBAA) |  | 随机生成柔和颜色(低饱和度) | function generateRandomSoftColor() {var h = Math.floor(Math.random() * 361);
 var s = Math.floor (Math.random () * 31); // 0-30% 饱和度,确保颜色柔和
 var l = Math.floor (Math.random () * 41) + 30; // 30-70% 亮度,确保颜色不会太暗或太亮
 var hsl = "hsl(" + h + ", " + s + "%, " + l + "%)";
 printl ("生成随机柔和颜色:" + hsl);
 return hsl;
 }
 |  | 
 📌随机UUID生成函数函数说明表 使用示例表| 类别 | 详情说明 |  | 函数名称 | randomUUID |  | 方法功能 | 生成随机 UUID(通用唯一识别码) |  | 方法签名 | String randomUUID() |  | 返回值 | String(UUID 字符串,格式为 xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx) |  | 参数 | 无 |  |  |  |  | 函数名称 | simpleUUID |  | 方法功能 | 生成简单的 UUID(只包含数字和字母) |  | 方法签名 | String simpleUUID() |  | 返回值 | String(32 位 UUID 字符串) |  | 参数 | 无 | 
 | 应用场景 | 示例代码 | 说明 |  | 标准 UUID 生成示例 | var uuid = randomUUID();printl ("生成标准 UUID:" + uuid);
 | 生成符合标准格式(带连字符)的 UUID 字符串 |  | 简单 UUID 生成示例 | var simpleUuid = simpleUUID();printl ("生成简单 UUID:" + simpleUuid);
 | 生成 32 位无连字符的简单 UUID 字符串(仅包含数字和字母) |  | 多次生成随机 UUID 示例 | printl ("连续生成 5 个随机 UUID:");for (var i = 0; i < 5; i++) {
 printl(" UUID " + (i+1) + ": " + randomUUID());
 }
 | 循环生成 5 个标准格式的 UUID 并输出 |  | 生成设备唯一标识符 | function generateDeviceId() {var deviceId = randomUUID();
 printl ("生成设备 ID:" + deviceId);
 return deviceId;
 }
 | 使用标准 UUID 生成设备唯一标识符 |  | 生成会话 ID | function generateSessionId() {var sessionId = randomUUID();
 printl ("生成会话 ID:" + sessionId);
 return sessionId;
 }
 | 使用标准 UUID 生成用户会话唯一标识 |  | 生成事务 ID | function generateTransactionId() {var transactionId = simpleUUID();
 printl ("生成事务 ID:" + transactionId);
 return transactionId;
 }
 | 使用简单 UUID 生成交易事务唯一标识 |  | 生成 API 请求 ID | function generateRequestId() {var requestId = randomUUID();
 printl ("生成请求 ID:" + requestId);
 return requestId;
 }
 | 使用标准 UUID 生成 API 请求唯一标识,用于追踪请求 |  | 生成文件唯一标识符 | function generateFileId() {var fileId = simpleUUID();
 printl ("生成文件 ID:" + fileId);
 return fileId;
 }
 | 使用简单 UUID 生成文件唯一标识,适合作为文件名或存储标识 |  | 生成用户临时标识符 | function generateTempUserId() {var tempUserId = randomUUID();
 printl ("生成临时用户 ID:" + tempUserId);
 return tempUserId;
 }
 | 使用标准 UUID 生成未登录用户的临时标识 |  | 生成订单号(带 UUID) | function generateOrderNumber() {var timestamp = new Date().getTime();
 var uuidPart = simpleUUID().substr(0, 8);
 var orderNumber = "ORD" + timestamp + uuidPart.toUpperCase();
 printl ("生成订单号:" + orderNumber);
 return orderNumber;
 }
 | 结合时间戳和简单 UUID 前 8 位生成订单号,兼具唯一性和时间关联性 |  | 生成随机密码重置令牌 | function generateResetToken() {var resetToken = randomUUID();
 printl ("生成密码重置令牌:" + resetToken);
 return resetToken;
 }
 | 使用标准 UUID 生成密码重置链接中的唯一令牌,确保安全性 | 
 📌随机密码 / 验证码[color=var(--md-box-samantha-deep-text-color) !important]随机密码 / 验证码生成函数及使用说明[color=var(--md-box-samantha-deep-text-color) !important]函数说明表 [color=var(--md-box-samantha-deep-text-color) !important]使用示例表| 类别 | 详情说明 |  |  | 函数名称 | randomPassword |  |  | 方法功能 | 生成指定长度的随机密码,可自定义包含的字符类型 |  |  | 方法签名 | String randomPassword(Int32 length, Boolean includeUppercase, Boolean includeLowercase, Boolean includeNumbers, Boolean includeSymbols) |  |  | 返回值 | String(生成的随机密码) |  |  | 参数 | - Int32 length:密码长度- Boolean includeUppercase:是否包含大写字母
 - Boolean includeLowercase:是否包含小写字母
 - Boolean includeNumbers:是否包含数字
 - Boolean includeSymbols:是否包含特殊符号(!@#$%^&*()_+-=[]{}
 | ;:,.<>?) |  |  |  |  |  | 函数名称 | randomVerificationCode |  |  | 方法功能 | 生成指定长度的随机验证码,默认包含数字和大写字母 |  |  | 方法签名 | String randomVerificationCode(Int32 length) |  |  | 返回值 | String(生成的随机验证码) |  |  | 参数 | - Int32 length:验证码长度 |  |  |  |  |  |  | 函数名称 | randomNumericCode |  |  | 方法功能 | 生成指定长度的纯数字验证码 |  |  | 方法签名 | String randomNumericCode(Int32 length) |  |  | 返回值 | String(生成的纯数字验证码) |  |  | 参数 | - Int32 length:验证码长度 |  |  |  |  |  |  | 函数名称 | randomAlphaCode |  |  | 方法功能 | 生成指定长度的纯字母验证码,支持区分大小写 |  |  | 方法签名 | String randomAlphaCode(Int32 length, Boolean caseSensitive) |  |  | 返回值 | String(生成的纯字母验证码) |  |  | 参数 | - Int32 length:验证码长度- Boolean caseSensitive:是否区分大小写(true = 区分大小写,false = 仅大写字母)
 |  | 
 | 应用场景 | 示例代码 | 说明 |  | 生成复杂密码(12 位,全字符类型) | var password1 = randomPassword(12, true, true, true, true);printl ("生成 12 位复杂密码:" + password1);
 | 生成包含大写字母、小写字母、数字、特殊符号的 12 位复杂密码 |  | 生成字母数字密码(8 位) | var password2 = randomPassword(8, true, true, true, false);printl ("生成 8 位字母数字密码:" + password2);
 | 生成包含大小写字母、数字(无特殊符号)的 8 位密码 |  | 生成小写字母数字密码(6 位) | var password3 = randomPassword(6, false, true, true, false);printl ("生成 6 位小写字母数字密码:" + password3);
 | 生成包含小写字母、数字(无大写、无特殊符号)的 6 位密码 |  | 生成 6 位混合验证码(数字 + 大写) | var verificationCode1 = randomVerificationCode(6);printl ("生成 6 位验证码:" + verificationCode1);
 | 生成包含数字和大写字母的 6 位通用验证码 |  | 生成 4 位混合验证码(数字 + 大写) | var verificationCode2 = randomVerificationCode(4);printl ("生成 4 位验证码:" + verificationCode2);
 | 生成包含数字和大写字母的 4 位通用验证码 |  | 生成 6 位纯数字验证码 | var numericCode = randomNumericCode(6);printl ("生成 6 位纯数字验证码:" + numericCode);
 | 生成仅含数字的 6 位验证码(常用于短信、语音验证) |  | 生成 6 位纯大写字母验证码 | var alphaCode1 = randomAlphaCode(6, false);printl ("生成 6 位大写字母验证码:" + alphaCode1);
 | 生成仅含大写字母的 6 位验证码(不区分大小写) |  | 生成 6 位大小写混合字母验证码 | var alphaCode2 = randomAlphaCode(6, true);printl ("生成 6 位大小写混合字母验证码:" + alphaCode2);
 | 生成包含大小写字母的 6 位验证码(区分大小写) |  | 连续生成 3 个 10 位字母数字密码 | printl ("连续生成 3 个随机密码:");for (var i = 0; i < 3; i++) {
 printl ("密码" + (i+1) + ":" + randomPassword (10, true, true, true, false));
 }
 | 循环生成 3 个包含大小写字母、数字的 10 位密码 |  | 用户注册初始密码生成 | function generateInitialPassword() {var password = randomPassword(10, true, true, true, false);
 printl ("生成初始密码:" + password);
 return password;
 }
 | 生成 10 位字母数字组合的初始密码(用于新用户注册默认密码) |  | 短信验证码生成 | function generateSMSCode() {var smsCode = randomNumericCode(6);
 printl ("生成短信验证码:" + smsCode);
 return smsCode;
 }
 | 生成 6 位纯数字短信验证码(符合主流平台短信验证格式) |  | 邮箱验证令牌生成 | function generateEmailVerificationToken() {var token = randomVerificationCode(32);
 printl ("生成邮箱验证令牌:" + token);
 return token;
 }
 | 生成 32 位数字 + 大写字母的邮箱验证令牌(用于邮箱激活链接) |  | 临时访问密码生成 | function generateTempPassword() {var tempPassword = randomPassword(8, true, true, true, false);
 printl ("生成临时密码:" + tempPassword);
 return tempPassword;
 }
 | 生成 8 位字母数字组合的临时密码(用于密码找回临时登录) |  | 图形验证码文本生成 | function generateCaptchaText() {var captcha = randomAlphaCode(4, true);
 printl ("生成图形验证码:" + captcha);
 return captcha;
 }
 | 生成 4 位大小写混合字母的图形验证码文本(用于网页图形验证) |  | API 密钥生成 | function generateAPIKey() {var apiKey = randomPassword(32, true, true, true, false);
 printl ("生成 API 密钥:" + apiKey);
 return apiKey;
 }
 | 生成 32 位字母数字组合的 API 密钥(用于接口访问身份验证) |  | 安全令牌生成 | function generateSecurityToken() {var token = randomVerificationCode(64);
 printl ("生成安全令牌:" + token);
 return token;
 }
 | 生成 64 位数字 + 大写字母的安全令牌(用于高安全性场景身份校验) |  | 随机盐值生成 | function generateSalt() {var salt = randomPassword(16, true, true, true, true);
 printl ("生成随机盐值:" + salt);
 return salt;
 }
 | 生成 16 位包含大小写、数字、特殊符号的盐值(用于密码加密存储) | 
 📌随机数组排序(洗牌算法)[color=var(--md-box-samantha-deep-text-color) !important]函数说明表 [color=var(--md-box-samantha-deep-text-color) !important]使用示例表| 类别 | 详情说明 |  | 函数名称 | shuffle |  | 方法功能 | 使用Fisher-Yates 洗牌算法对数组进行随机排序,生成新数组(不修改原数组) |  | 方法签名 | Array shuffle(Array array) |  | 返回值 | Array(随机排序后的新数组) |  | 参数 | - Array array:需要随机排序的源数组 |  |  |  |  | 函数名称 | shuffleInPlace |  | 方法功能 | 使用Fisher-Yates 洗牌算法对数组进行原地随机排序(直接修改原数组) |  | 方法签名 | Void shuffleInPlace(Array array) |  | 返回值 | Void(无返回值,排序后结果直接作用于输入数组) |  | 参数 | - Array array:需要随机排序的源数组(将被直接修改) | 
 | 应用场景 | 示例代码 | 说明 |  | 基本洗牌示例(不修改原数组) | var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];printl ("原始数组:" + numbers.join (","));
 
 var shuffledNumbers = shuffle(numbers);
 printl ("洗牌后数组:" + shuffledNumbers.join (","));
 printl ("原数组未变:" + numbers.join (","));
 | 通过shuffle 生成新数组,原数组numbers 保持初始顺序,适合需保留源数据的场景 |  | 原地洗牌示例(修改原数组) | var colors = ["红色", "绿色", "蓝色", "黄色", "紫色", "橙色"];printl ("原始颜色数组:" + colors.join (","));
 
 shuffleInPlace(colors);
 printl ("原地洗牌后:" + colors.join (","));
 | 通过shuffleInPlace 直接修改原数组colors ,无需额外存储新数组,适合内存敏感场景 |  | 多次洗牌示例 | var cards = ["A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"];printl ("原始牌组:" + cards.join (","));
 
 printl ("多次洗牌结果:");
 for (var i = 0; i < 3; i++) {
 var shuffledCards = shuffle(cards);
 printl ("第" + (i+1) + "次洗牌:" + shuffledCards.join (","));
 }
 | 对同一源数组(牌组)多次调用shuffle ,每次生成独立的随机排序结果,模拟真实洗牌场景 |  | 随机播放列表 | function shufflePlaylist(songs) {printl ("原始播放列表:" + songs.join ("->"));
 var shuffledSongs = shuffle(songs);
 printl ("随机播放列表:" + shuffledSongs.join ("->"));
 return shuffledSongs;
 }
 
 printl ("播放列表随机排序:");
 var playlist = ["歌曲 1", "歌曲 2", "歌曲 3", "歌曲 4", "歌曲 5"];
 shufflePlaylist(playlist);
 | 打乱歌曲顺序生成随机播放列表,保留原始列表不被修改 |  | 随机抽取题目 | function randomizeQuestions(questions) {printl ("原始题目顺序:" + questions.join (","));
 var randomizedQuestions = shuffle(questions);
 printl ("随机题目顺序:" + randomizedQuestions.join (","));
 return randomizedQuestions;
 }
 
 printl ("题目随机排序:");
 var examQuestions = ["选择题 1", "选择题 2", "填空题 1", "填空题 2", "简答题"];
 randomizeQuestions(examQuestions);
 | 打乱题目顺序,用于考试、问卷等场景,避免固定顺序影响结果 |  | 随机分配任务 | function assignTasksRandomly(tasks, people) {printl ("原始任务列表:" + tasks.join (","));
 printl ("参与人员列表:" + people.join (","));
 var shuffledTasks = shuffle(tasks);
 var assignments = {};
 for (var i = 0; i < people.length; i++) {
 var person = people;
 var taskIndex = i % shuffledTasks.length;
 assignments[person] = shuffledTasks[taskIndex];
 }
 printl ("随机任务分配结果:");
 for (var person in assignments) {
 printl(" " + person + " -> " + assignments[person]);
 }
 return assignments;
 }
 
 printl ("任务随机分配:");
 var taskList = ["任务 A", "任务 B", "任务 C", "任务 D"];
 var teamMembers = ["张三", "李四", "王五", "赵六"];
 assignTasksRandomly(taskList, teamMembers);
 | 先打乱任务顺序,再按人员列表分配任务,实现公平随机的任务分发 |  | 随机抽奖 | function lottery(participants, prizeCount) {printl ("参与抽奖人员:" + participants.join (","));
 printl ("奖品数量:" + prizeCount);
 var shuffledParticipants = shuffle(participants);
 var winners = shuffledParticipants.slice(0, prizeCount);
 printl ("中奖人员:" + winners.join (","));
 return winners;
 }
 
 printl ("随机抽奖:");
 var participants = ["用户 A", "用户 B", "用户 C", "用户 D", "用户 E", "用户 F", "用户 G"];
 lottery(participants, 3);
 | 打乱参与人员顺序,取前 N 名作为中奖者,确保抽奖公平性 |  | 随机测试数据生成 | function generateRandomTestData(items) {printl ("原始测试数据:" + items.join (","));
 var testDataSets = [];
 for (var i = 0; i < 5; i++) {
 var shuffledData = shuffle(items);
 testDataSets.push(shuffledData);
 printl ("测试数据集" + (i+1) + ":" + shuffledData.join (","));
 }
 return testDataSets;
 }
 
 printl ("随机测试数据生成:");
 var testData = ["数据 1", "数据 2", "数据 3", "数据 4", "数据 5"];
 generateRandomTestData(testData);
 | 生成多组不同顺序的测试数据,用于验证算法对数据顺序的鲁棒性 |  | 游戏地图随机化 | function randomizeGameMap(rooms) {printl ("原始房间顺序:" + rooms.join ("->"));
 var randomizedRooms = shuffle(rooms);
 printl ("随机房间顺序:" + randomizedRooms.join ("->"));
 return randomizedRooms;
 }
 
 printl ("游戏地图随机化:");
 var gameRooms = ["起始房间", "怪物房间", "宝藏房间", "商店房间", "Boss 房间"];
 randomizeGameMap(gameRooms);
 | 打乱游戏房间顺序,生成随机地图路径,提升游戏可玩性 | 
 多个例子全部集合在一起: 复制代码/**
 * 随机数工具类 - 整合所有随机相关功能
 * 包含:基础随机值、坐标、数组、日期、颜色、UUID、密码验证码、洗牌算法等
 * 交流QQ群:711841924(苹果内测群一)、528816639
 */
const RandomUtils = {
  // ========================== 1. 基础随机值生成 ==========================
  /**
   * LtUqFOGkc6 - 生成指定范围的随机小数
   * @param {number} min - 最小值(包含)
   * @param {number} max - 最大值(包含)
   * @returns {number} 随机小数
   */
  LtUqFOGkc6(min, max) {
    return Math.random() * (max - min) + min;
  },
  /**
   * randInt / WBJqf91s7J - 生成指定范围的随机整数(两个函数功能一致,统一实现)
   * @param {number} min - 最小值(包含)
   * @param {number} max - 最大值(包含)
   * @returns {number} 随机整数
   */
  randInt(min, max) {
    // 修正:确保参数是整数并正确处理边界
    min = Math.ceil(min);
    max = Math.floor(max);
    return Math.floor(Math.random() * (max - min + 1)) + min;
  },
  WBJqf91s7J: function (min, max) { // 兼容原命名
    return this.randInt(min, max);
  },
  /**
   * randBool - 生成 50% 概率的随机布尔值
   * @returns {boolean} true/false
   */
  randBool() {
    return Math.random() < 0.5;
  },
  /**
   * randBoolWithProbability - 按指定概率生成布尔值
   * @param {number} probability - 返回 true 的概率(0.0 ~ 1.0)
   * @returns {boolean} 按概率生成的布尔值
   */
  randBoolWithProbability(probability) {
    // 边界值处理:确保概率在合法范围
    probability = Math.max(0, Math.min(1, probability));
    return Math.random() < probability;
  },
  /**
   * GQGqcAlZv2 - 生成指定长度的随机字符(字母+数字)
   * @param {number} length - 字符长度(正整数)
   * @returns {string} 随机字符串
   */
  GQGqcAlZv2(length) {
    if (length <= 0) return "";
    const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
    let result = "";
    for (let i = 0; i < length; i++) {
      const randomIndex = this.randInt(0, chars.length - 1);
      result += chars[randomIndex];
    }
    return result;
  },
  // ========================== 2. 坐标与区域随机 ==========================
  /**
   * randClickPosition - 在指定区域内生成随机点击坐标
   * @param {number} left - 左边界
   * @param {number} top - 上边界
   * @param {number} right - 右边界
   * @param {number} bottom - 下边界
   * @returns {Object} 包含 x/y 坐标的对象
   */
  randClickPosition(left, top, right, bottom) {
    const x = this.LtUqFOGkc6(left, right);
    const y = this.LtUqFOGkc6(top, bottom);
    return { x: Number(x.toFixed(2)), y: Number(y.toFixed(2)) }; // 保留2位小数,避免精度冗余
  },
  // ========================== 3. 数组随机操作 ==========================
  /**
   * randArrayElement / randChoice - 从数组随机选择1个元素(兼容原命名)
   * @param {Array} arr - 源数组
   * @returns {any|null} 随机元素(数组为空时返回null)
   */
  randArrayElement(arr) {
    if (!Array.isArray(arr) || arr.length === 0) return null;
    const index = this.randInt(0, arr.length - 1);
    return arr[index];
  },
  randChoice: function (arr) {
    return this.randArrayElement(arr);
  },
  /**
   * randArrayElements - 从数组随机选择指定数量的元素(不重复)
   * @param {Array} arr - 源数组
   * @param {number} count - 选择数量
   * @returns {Array} 随机元素数组(数量不足时返回所有元素)
   */
  randArrayElements(arr, count) {
    if (!Array.isArray(arr) || arr.length === 0) return [];
    // 复制数组避免修改原数组,再用洗牌算法截取
    const copyArr = [...arr];
    this.shuffleInPlace(copyArr);
    return copyArr.slice(0, Math.min(count, arr.length));
  },
  /**
   * shuffle - Fisher-Yates洗牌算法(生成新数组,不修改原数组)
   * @param {Array} arr - 源数组
   * @returns {Array} 随机排序后的新数组
   */
  shuffle(arr) {
    if (!Array.isArray(arr)) return [];
    const copyArr = [...arr];
    this.shuffleInPlace(copyArr);
    return copyArr;
  },
  /**
   * shuffleInPlace - Fisher-Yates洗牌算法(原地排序,修改原数组)
   * @param {Array} arr - 源数组(将被直接修改)
   */
  shuffleInPlace(arr) {
    if (!Array.isArray(arr)) return;
    for (let i = arr.length - 1; i > 0; i--) {
      const j = this.randInt(0, i);
      // 交换元素
      [arr[i], arr[j]] = [arr[j], arr[i]];
    }
  },
  // ========================== 4. 日期随机生成 ==========================
  /**
   * formatDate - 日期格式化工具
   * @param {Date} date - 日期对象
   * @param {string} format - 格式(如 "yyyy-MM-dd"、"yyyy/MM/dd HH:mm:ss")
   * @returns {string} 格式化后的日期字符串
   */
  formatDate(date, format) {
    if (!(date instanceof Date)) return "";
    const pad = (num) => num.toString().padStart(2, "0"); // 补零函数
    return format.replace(/yyyy/g, date.getFullYear())
      .replace(/MM/g, pad(date.getMonth() + 1)) // 月份0-11,需+1
      .replace(/dd/g, pad(date.getDate()))
      .replace(/HH/g, pad(date.getHours()))
      .replace(/mm/g, pad(date.getMinutes()))
      .replace(/ss/g, pad(date.getSeconds()))
      .replace(/SSS/g, pad(date.getMilliseconds()).padStart(3, "0"));
  },
  /**
   * randomDate - 生成指定范围的随机日期对象
   * @param {Date} startDate - 开始日期
   * @param {Date} endDate - 结束日期
   * @returns {Date} 随机日期
   */
  randomDate(startDate, endDate) {
    if (!(startDate instanceof Date) || !(endDate instanceof Date)) {
      throw new Error("参数必须是Date对象");
    }
    const startTime = startDate.getTime();
    const endTime = endDate.getTime();
    const randomTime = this.LtUqFOGkc6(startTime, endTime);
    return new Date(randomTime);
  },
  /**
   * randomDateString - 生成指定格式的随机日期字符串
   * @param {Date} startDate - 开始日期
   * @param {Date} endDate - 结束日期
   * @param {string} format - 日期格式
   * @returns {string} 格式化后的随机日期
   */
  randomDateString(startDate, endDate, format) {
    const randomDate = this.randomDate(startDate, endDate);
    return this.formatDate(randomDate, format);
  },
  // ========================== 5. 颜色随机生成 ==========================
  /**
   * randomColor - 生成随机十六进制颜色(#RRGGBB)
   * @returns {string} 十六进制颜色值
   */
  randomColor() {
    const letters = "0123456789ABCDEF";
    let color = "#";
    for (let i = 0; i < 6; i++) {
      color += letters[this.randInt(0, 15)];
    }
    return color;
  },
  /**
   * randomRGBColor - 生成随机RGB颜色
   * @returns {Object} { r: 0-255, g: 0-255, b: 0-255 }
   */
  randomRGBColor() {
    return {
      r: this.randInt(0, 255),
      g: this.randInt(0, 255),
      b: this.randInt(0, 255)
    };
  },
  /**
   * randomRGBAColor - 生成随机RGBA颜色
   * @returns {Object} { r: 0-255, g: 0-255, b: 0-255, a: 0.00-1.00 }
   */
  randomRGBAColor() {
    return {
      ...this.randomRGBColor(),
      a: Number(this.LtUqFOGkc6(0, 1).toFixed(2))
    };
  },
  /**
   * randomHSLColor - 生成随机HSL颜色
   * @returns {Object} { h: 0-360, s: 0-100%, l: 0-100% }
   */
  randomHSLColor() {
    return {
      h: this.randInt(0, 360),
      s: `${this.randInt(0, 100)}%`,
      l: `${this.randInt(0, 100)}%`
    };
  },
  /**
   * generateRandomSoftColor - 生成低饱和度柔和颜色(HSL格式)
   * @returns {string} HSL颜色字符串(如 "hsl(120, 20%, 50%)")
   */
  generateRandomSoftColor() {
    const h = this.randInt(0, 360);
    const s = this.randInt(0, 30); // 0-30% 饱和度(柔和)
    const l = this.randInt(30, 70); // 30-70% 亮度(不暗不亮)
    return `hsl(${h}, ${s}%, ${l}%)`;
  },
  // ========================== 6. UUID 生成 ==========================
  /**
   * randomUUID - 生成标准UUID(格式:xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx)
   * @returns {string} 标准UUID字符串
   */
  randomUUID() {
    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
      const r = this.randInt(0, 15); // 修正:使用整数随机数而不是小数
      const v = c === 'x' ? r : (r & 0x3 | 0x8); // y位固定为 0100 或 1000
      return v.toString(16);
    });
  },
  /**
   * simpleUUID - 生成32位简化UUID(无连字符,仅字母+数字)
   * @returns {string} 32位UUID字符串
   */
  simpleUUID() {
    return this.randomUUID().replace(/-/g, '');
  },
  // ========================== 7. 密码与验证码生成 ==========================
  /**
   * randomPassword - 自定义复杂度的随机密码
   * @param {number} length - 密码长度
   * @param {boolean} includeUppercase - 是否包含大写字母
   * @param {boolean} includeLowercase - 是否包含小写字母
   * @param {boolean} includeNumbers - 是否包含数字
   * @param {boolean} includeSymbols - 是否包含特殊符号(!@#$%^&*()_+-=[]{};:,.<>?)
   * @returns {string} 随机密码
   */
  randomPassword(length, includeUppercase, includeLowercase, includeNumbers, includeSymbols) {
    if (length <= 0) return "";
    // 定义字符集
    let chars = "";
    if (includeUppercase) chars += "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    if (includeLowercase) chars += "abcdefghijklmnopqrstuvwxyz";
    if (includeNumbers) chars += "0123456789";
    if (includeSymbols) chars += "!@#$%^&*()_+-=[]{};:,.<>?";
    // 兜底:若未选任何字符集,默认字母+数字
    if (chars === "") chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
    
    let password = "";
    for (let i = 0; i < length; i++) {
      password += chars[this.randInt(0, chars.length - 1)];
    }
    return password;
  },
  /**
   * randomVerificationCode - 混合验证码(数字+大写字母)
   * @param {number} length - 验证码长度
   * @returns {string} 混合验证码
   */
  randomVerificationCode(length) {
    // 修正:根据函数描述,应该是数字+大写字母
    if (length <= 0) return "";
    const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    let result = "";
    for (let i = 0; i < length; i++) {
      result += chars[this.randInt(0, chars.length - 1)];
    }
    return result;
  },
  /**
   * randomNumericCode - 纯数字验证码
   * @param {number} length - 验证码长度
   * @returns {string} 纯数字验证码
   */
  randomNumericCode(length) {
    if (length <= 0) return "";
    const chars = "0123456789";
    let result = "";
    for (let i = 0; i < length; i++) {
      result += chars[this.randInt(0, chars.length - 1)];
    }
    return result;
  },
  /**
   * randomAlphaCode - 纯字母验证码
   * @param {number} length - 验证码长度
   * @param {boolean} caseSensitive - 是否区分大小写(true=混合,false=仅大写)
   * @returns {string} 纯字母验证码
   */
  randomAlphaCode(length, caseSensitive) {
    if (length <= 0) return "";
    let chars = "";
    if (caseSensitive) {
      // 区分大小写,混合大小写字母
      chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    } else {
      // 不区分大小写,仅大写字母
      chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    }
    
    let result = "";
    for (let i = 0; i < length; i++) {
      result += chars[this.randInt(0, chars.length - 1)];
    }
    return result;
  },
  // ========================== 8. 综合模拟 ==========================
  /**
   * simulateRandomUserActions - 模拟用户随机操作(点击/滑动/输入/等待)
   */
  simulateRandomUserActions() {
    printl("=== 模拟用户随机操作 ==="); // 修正:使用printl而不是console.log
    const actions = ["点击", "滑动", "输入", "等待"];
    const action = this.randArrayElement(actions);
    switch (action) {
      case "点击":
        const clickPos = this.randClickPosition(0, 0, 1920, 1080); // 假设屏幕1920x1080
        printl("随机点击屏幕位置: (" + clickPos.x + ", " + clickPos.y + ")");
        // 实际项目可添加:hid.click(clickPos.x, clickPos.y);
        break;
      case "滑动":
        const startPos = this.randClickPosition(100, 100, 400, 600);
        const endPos = this.randClickPosition(100, 100, 400, 600);
        printl("随机滑动: (" + startPos.x + ", " + startPos.y + ") → (" + endPos.x + ", " + endPos.y + ")");
        // 实际项目可添加:hid.swip(startPos.x, startPos.y, endPos.x, endPos.y, 500);
        break;
      case "输入":
        const texts = ["Hello", "AIWork", "Automation", "RandomTest"];
        const inputText = this.randArrayElement(texts);
        printl("随机输入文本: " + inputText);
        // 实际项目可添加:hid.inputSimple(inputText);
        break;
      case "等待":
        const waitTime = this.randInt(1000, 3000);
        printl("随机等待: " + waitTime + "ms");
        // 实际项目可添加:sleep.millisecond(waitTime);
        break;
    }
  },
  /**
   * simulateRandomError - 模拟随机错误(10%概率)
   * @returns {boolean} 操作是否成功(true=成功,false=错误)
   */
  simulateRandomError() {
    if (this.randBoolWithProbability(0.1)) {
      printl("[错误模拟] 操作失败(10%概率触发)");
      return false;
    }
    printl("[错误模拟] 操作成功");
    return true;
  },
  /**
   * lottery - 随机抽奖(公平洗牌后取前N名)
   * @param {Array} participants - 参与人员列表
   * @param {number} prizeCount - 奖品数量
   * @returns {Array} 中奖人员列表
   */
  lottery(participants, prizeCount) {
    printl("=== 随机抽奖(参与人数:" + participants.length + ",奖品数:" + prizeCount + ")===");
    const shuffled = this.shuffle(participants);
    const winners = shuffled.slice(0, prizeCount);
    printl("中奖人员: " + winners.join(", "));
    return winners;
  },
  
  /**
   * randNumber - 生成指定范围的随机整数(根据文档中的使用方式)
   * @param {number} min - 最小值
   * @param {number} max - 最大值
   * @returns {number} 随机整数
   */
  randNumber(min, max) {
    // 根据文档中的使用方式实现
    return this.randInt(min, max);
  }
};
// ========================== 测试示例:所有功能的使用演示 ==========================
function testRandomUtils() {
  // 1. 基础随机值测试
  printl("=== 1. 基础随机值测试 ===");
  printl("0-1随机小数: " + RandomUtils.LtUqFOGkc6(0, 1).toFixed(4));
  printl("10-100随机整数: " + RandomUtils.randInt(10, 100));
  printl("50%概率布尔值: " + RandomUtils.randBool());
  printl("30%概率true: " + RandomUtils.randBoolWithProbability(0.3));
  printl("16位随机字符: " + RandomUtils.GQGqcAlZv2(16));
  printl("");
  // 2. 坐标随机测试
  printl("=== 2. 坐标随机测试 ===");
  const clickPos = RandomUtils.randClickPosition(100, 200, 500, 800);
  printl("指定区域随机坐标: " + JSON.stringify(clickPos));
  printl("");
  // 3. 数组随机测试
  printl("=== 3. 数组随机测试 ===");
  const fruits = ["苹果", "香蕉", "橙子", "葡萄", "草莓"];
  printl("随机选1个水果: " + RandomUtils.randArrayElement(fruits));
  printl("随机选3个水果(不重复): " + JSON.stringify(RandomUtils.randArrayElements(fruits, 3)));
  const numbers = [1, 2, 3, 4, 5];
  printl("数组洗牌(新数组): " + JSON.stringify(RandomUtils.shuffle(numbers)));
  printl("原数组是否不变: " + JSON.stringify(numbers)); // [1,2,3,4,5](未修改)
  RandomUtils.shuffleInPlace(numbers);
  printl("数组原地洗牌(修改原数组): " + JSON.stringify(numbers));
  printl("");
  // 4. 日期随机测试
  printl("=== 4. 日期随机测试 ===");
  const startDate = new Date(2020, 0, 1); // 2020-01-01
  const endDate = new Date(2025, 11, 31); // 2025-12-31
  printl("随机生日(1980-2005): " + RandomUtils.randomDateString(
    new Date(1980, 0, 1),
    new Date(2005, 11, 31),
    "yyyy-MM-dd"
  ));
  printl("随机日志时间(近7天): " + RandomUtils.randomDateString(
    new Date(Date.now() - 7 * 24 * 60 * 60 * 1000),
    new Date(),
    "yyyy-MM-dd HH:mm:ss.SSS"
  ));
  printl("");
  // 5. 颜色随机测试
  printl("=== 5. 颜色随机测试 ===");
  printl("随机十六进制颜色: " + RandomUtils.randomColor());
  printl("随机RGB颜色: " + JSON.stringify(RandomUtils.randomRGBColor()));
  printl("随机RGBA颜色: " + JSON.stringify(RandomUtils.randomRGBAColor()));
  printl("随机HSL颜色: " + JSON.stringify(RandomUtils.randomHSLColor()));
  printl("柔和颜色: " + RandomUtils.generateRandomSoftColor());
  printl("");
  // 6. UUID测试
  printl("=== 6. UUID测试 ===");
  printl("标准UUID: " + RandomUtils.randomUUID());
  printl("32位简化UUID: " + RandomUtils.simpleUUID());
  printl("设备ID(UUID): " + RandomUtils.randomUUID());
  printl("");
  // 7. 密码验证码测试
  printl("=== 7. 密码验证码测试 ===");
  printl("12位复杂密码(全字符): " + RandomUtils.randomPassword(12, true, true, true, true));
  printl("6位短信验证码(纯数字): " + RandomUtils.randomNumericCode(6));
  printl("4位图形验证码(大小写): " + RandomUtils.randomAlphaCode(4, true));
  printl("6位混合验证码(数字+大写字母): " + RandomUtils.randomVerificationCode(6));
  printl("");
  // 8. 综合模拟测试
  printl("=== 8. 综合模拟测试 ===");
  RandomUtils.simulateRandomUserActions();
  RandomUtils.simulateRandomError();
  RandomUtils.lottery(["用户A", "用户B", "用户C", "用户D", "用户E"], 2);
  printl("");
  printl("=== 所有测试完成 ===");
}
// 执行测试
testRandomUtils();
 
 |  |  |  |  |  | 
 |