# Fisher-Yates Shuffle

18th February, 2023

The Fisher-Yates shuffle, example in Typescript

shuffle(cards: any[]) {let m = cards.length;let t, i = 0;while(m) {i = Math.floor(Math.random() * m--);t = cards[m];cards[m] = cards[i];cards[i] = t;}}

The pseudo-code for this algorithm is as follows:

for i from n-1 downto 1 doj <- random integer such that 0 <= j <= iexchange a[j] and a[i]