UNPKG

dist-javascript-algorithms-and-data-structures

Version:

Algorithms and data-structures implemented on JavaScript

22 lines (18 loc) 540 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = fisherYates; /** * @param {*[]} originalArray * @return {*[]} */ function fisherYates(originalArray) { // Clone array from preventing original array from modification (for testing purpose). const array = originalArray.slice(0); for (let i = array.length - 1; i > 0; i -= 1) { const randomIndex = Math.floor(Math.random() * (i + 1)); [array[i], array[randomIndex]] = [array[randomIndex], array[i]]; } return array; }