Перемешивание элементов массива в случайном порядке

Задача: Нужно реализовать функцию, которая принимает массив и перемешивает элементы принятого массива в случайном порядке.

Вот пример функции:

function randomShuffle(array) {
// Копируем массив, чтобы не изменять исходный
const shuffledArray = array.slice();

// Перемешиваем массив
for (let i = shuffledArray.length - 1; i > 0; i--) {
// Выбираем случайный индекс от 0 до i
const j = Math.floor(Math.random() * (i + 1));

// Меняем местами элементы shuffledArray[i] и shuffledArray[j]
[shuffledArray[i], shuffledArray[j]] = [shuffledArray[j], shuffledArray[i]];
}

return shuffledArray;
}

Пример использования:

const originalArray = [1, 2, 3, 4, 5];
const shuffledArray = randomShuffle(originalArray);
console.log(shuffledArray); // Выведет массив, например: [3, 5, 1, 4, 2]
console.log(originalArray); // Исходный массив остается неизменным: [1, 2, 3, 4, 5]

Этот код создает копию исходного массива и перемешивает её, чтобы не изменять оригинальный массив, по алгоритму Фишера-Йетса.
Это гарантирует равномерное распределение всех возможных перестановок элементов массива.