Javascript Python 셔플(Shuffle)

셔플(Shuffle, 섞기)은 데이터를 무작위(Random)로 섞는 알고리즘입니다. Fisher–Yates Shuffle 알고리즘이 대표적입니다. Javascript(자바스크립트)와 Python(파이썬)으로 만들어 봤습니다.
(Python은 random.shuffle 메서드가 있기 때문에 만들어 쓸 필요는 없습니다.)

Javascript 셔플

function shuffle(ar) {
  for (var i = ar.length - 1; i > 0; i--) {
    var r = Math.floor(Math.random() * (i + 1)); // 0 ~ i
    [ar[i], ar[r]] = [ar[r], ar[i]];
  }
}

var ar = [1, 2, 3, 4, 5, 6, 7];
shuffle(ar);
console.log(ar);

Python 셔플

import random

def shuffle(ar):
  for i in range(len(ar)-1, 0, -1):
    r = random.randint(0, i) # 0 ~ i
    ar[i], ar[r] = ar[r], ar[i]

ar = [1, 2, 3, 4, 5, 6, 7]
shuffle(ar)
print(ar)