Метод Array.sort() — что такое a и b?
По тому что это коллбэк для сравнения пар элементов.
Не нужно завязываться на порядок их появления.
Нужно вернуть:

-1 если a<b
+1 если a>b
0 если a==b

Я задавала похожий вопрос посмотрите - 
ссылка, причем в другом движке( например FireFox) первый элемент будет наоборот. Просто не зацикливайтесь какой из элементов появляется раньше, он сравнивает два элемента и перемещает их по массиву, если все же хотите понимать точно, то просто почитайте спецификацию конкретного движка