OK so I am on task 25 of the build a library project and on trying to accomplish what it is telling me to do which is " Create a method called `shuffle`

for the `CD`

class. The method returns a randomly sorted array of all the songs in the `songs`

property." To achieve this I seen using the fisher yates shuffle is the best I understand what it does and how it works I just don’t under stand one small part of it

const array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

function shuffle(array) {

for (let i = array.length - 1; i > 0; i–) {

let j = Math.floor(Math.random() * (i + 1));

let temp = array[i];

array[i] = array[j];

array[j] = temp;

}

return array;

}

const result = shuffle(array);

// these three lines right here what do they do ?

let temp = array[i];

array[i] = array[j];

array[j] = temp;

if someone could go step by step with what each of the lines do that would be great I know they swap the values around I just dont see the need for “array[i] = array[j];” to be there when there is already “array[j] = temp;”.