Всё верно, Вы каждый раз берете один и тот же элемент и ставите ему margin -1000px:
i[i.length-1] -> 4 и так будет всегда, потому что надо смотреть не на порядок вывода в браузере, а на порядок в DOM.
Получается при каждом вызове Вам нужно менять индекс получаемого объекта:
i[3] -> 4 (Последний элемент)
i[2] -> 3 (Четверка поднялась наверх, значит по порядку вывода, тройка последняя)
и тд...