Вывести из массива случайные 3 элемента (английский алфавит) с разными регистрами

Есть такой код:

function shuffle(arr) {
  var j, temp;
  for (var i = arr.length - 1; i > 0; i--) {
    j = Math.floor(Math.random() * (i + 1));
    temp = arr[j];
    arr[j] = arr[i];
    arr[i] = temp;
  }
  return arr;
}

var alpText = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
console.log(shuffle(alpText));

Этот код перемешивает алфавит.

Как делать так, чтобы вытащить из этого массива 3 случайных элементов с разными регистрами.

Должен получиться например такой ответ: dGk (вытащил случайные 3 элемента и делал для одного или более элементов большой регистр).


Ответы (2 шт):

Автор решения: Igor

function shuffle(arr) {
  var j, temp;
  for (var i = arr.length - 1; i > 0; i--) {
    j = Math.floor(Math.random() * (i + 1));
    temp = arr[j];
    arr[j] = arr[i];
    arr[i] = temp;
  }
  return arr;
}

var alpText = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
shuffle(alpText);

function randomUpper(a) {
  if (Math.random() < 0.5)
    a = a.toUpperCase();
  return a;
}

var result = randomUpper(alpText[0]) + randomUpper(alpText[1]) + randomUpper(alpText[2]);
console.log(result);

→ Ссылка
Автор решения: uberchel

function shuffle(arr) {
  var j, temp;
  for (var i = arr.length - 1; i > 0; i--) {
    j = Math.floor(Math.random() * (i + 1));
    temp = arr[j];
    arr[j] = arr[i];
    arr[i] = temp;
  }
  return arr;
}

function random (arr, len = 3) {
  if (arr) {
    let result = '';
    while (len != 0) {
      result += (Math.random() >= 0.5) ? arr[len].toUpperCase() : arr[len];
      len--;
    }
    return result;
  }
}

var alpText = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];

console.log(random(shuffle(alpText)));

→ Ссылка