/**
 * 生成指定长度的随机数字字母组合(确保同时包含字母和数字)
 * @param {number} length 要生成的字符串长度
 * @returns {string} 随机生成的字符串
 */
function generateRandomCode(length = 6) {
  const numbers = '0123456789';
  const letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
  const chars = numbers + letters;
  
  // 确保至少包含 1 个数字和 1 个字母
  let result = [];
  result.push(numbers.charAt(Math.floor(Math.random() * numbers.length))); // 随机一个数字
  result.push(letters.charAt(Math.floor(Math.random() * letters.length))); // 随机一个字母

  // 生成剩余的字符
  for (let i = 2; i < length; i++) {
    result.push(chars.charAt(Math.floor(Math.random() * chars.length)));
  }

  // **打乱数组顺序（Fisher-Yates 洗牌算法，更高效）**
  for (let i = result.length - 1; i > 0; i--) {
    const j = Math.floor(Math.random() * (i + 1));
    [result[i], result[j]] = [result[j], result[i]];
  }

  return result.join('');
}
module.exports = {
  generateRandomCode
}