Por que esse algoritmo de embaralhamento está errado?

Antes de ler sobre Fisher-Yates, este é o algoritmo que eu criei:

def sort(arr):
    for i in range(len(arr)):
        swap(arr, i, rand.randint(0, len(arr) - 1))

Pelo que entendi, a única diferença entre isso e Fisher-Yates é que, em vez de:

swap(arr, i, rand.randint(0, len(arr) - 1))

Eu deveria escrever:

swap(arr, i, rand.randint(i, len(arr) - 1))

Alguém poderia explicar como o primeiro algoritmo está incorreto? (ou seja, não produz aleatoriamente aleatoriamente).

questionAnswers(1)

yourAnswerToTheQuestion