Com essa sintaxe rara, awk
armazena suas linhas em um Matriz Associativa . Assim não tem ordem definida. Você atingiu um comportamento indefinido.
Veja como se convencer: imprima o número da linha do próprio array associativo:
$ awk '{line_arr[$0]=NR } END \
{for (line in line_arr) print line_arr[line]"=>"line } \
' text_file
3=>Lots of random
1=>Hello. Here
4=>text.
2=>is some text.