Код выглядит так нелепо, потому что, до того, как я понял, что это глюк, я переворотил весь код.
Теперь все тик в тик. От for я почему-то постепенно отвыкаю...

Код AS3:
array_list final function selectionSort(array:Array, comparator:Function):Array
{
var data:*, i:int, j:int, min:int, lenght:int = array.length;
while (i < lenght)
{
min = i;
j = i;
while (j < lenght)
if (array[++j] < array[min])
min = j;
data = array[min];
array[min] = array[i];
array[i++] = data;
}
return array;
}