Как из строки сделать массив с рандом значениями?
function uid (alphabet, n) {
  let string = ''
  for (let i = 0; i < n; i++) {
    string += alphabet[Math.floor(Math.random() * alphabet.length)]
  }
  return string
}Берите nanoid и не мучайтесь
Первый аргумент превращаем в массив (назавем его условно alphArr). Далее на основании второго числа нужное количество раз генерим рандомное число в диапазоне от 0 до alphabet.length и по этому числу обращаемся к массиву alphArr. Полученное значение кладем в другой массив result. В конце делаем result.join('');