Dlaczego ten algorytm tasowania jest nieprawidłowy?

Zanim przeczytałem o Fisher-Yates, to jest algorytm, który wymyśliłem:

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

Z mojego zrozumienia, jedyną różnicą między tym a Fisher-Yates jest to, że zamiast:

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

Powinienem napisać:

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

Czy ktoś mógłby wyjaśnić, w jaki sposób pierwszy algorytm jest niepoprawny? (tj. nie tworzy losowego losowania).

questionAnswers(1)

yourAnswerToTheQuestion