Методы перетасовки массивов в JavaScript: Фишера-Йейтса, сортировка, отображение и сокращение

Чтобы перетасовать массив в JavaScript, вы можете использовать несколько методов. Вот несколько примеров:

  1. Использование алгоритма Фишера-Йейтса:

    function shuffleArray(array) {
    for (let i = array.length - 1; i > 0; i--) {
    const j = Math.floor(Math.random() * (i + 1));
    [array[i], array[j]] = [array[j], array[i]];
    }
    return array;
    }
  2. Использование метода sortс собственной функцией сравнения:

    function shuffleArray(array) {
    return array.sort(() => Math.random() - 0.5);
    }
  3. Использование метода mapи генератора случайных индексов:

    function shuffleArray(array) {
    return array.map((value) => ({ value, random: Math.random() }))
              .sort((a, b) => a.random - b.random)
              .map((item) => item.value);
    }
  4. Использование метода reduceи случайная вставка элементов:

    function shuffleArray(array) {
    return array.reduce((shuffled, element) => {
    const randomIndex = Math.floor(Math.random() * (shuffled.length + 1));
    shuffled.splice(randomIndex, 0, element);
    return shuffled;
    }, []);
    }