Ну да, почему бы не реализовать вручную тот же пузырек? Просто двигать вместе с элементами а1 соответствующие элементы а2.

Код:
var a1:Array = [12, 3, 1, 2, 2];
/*массив числовых данных типа int
неопределенной длины, с разными/одинаковыми, неупорядоченными значениями*/
var a2:Array = ['a', 'b', 'c', 'd', 'e'];
/*массив каких-либо объектов,
в данном случае для удобства и наглядности они представлены в виде
строковых данных, причем a1.length == a2.length;*/
function sort(a1, a2) {
var i:Number = 0;
var j:Number = 0;
var x:Number = 0;
var s:String = '';
var size = a1.length;
for (i = 0; i < size; i++) {
for (j = size - 1; j > i; j--) {
if (a1[j - 1] > a1[j]) {
x = a1[j - 1];
s = a2[j - 1];
a1[j - 1] = a1[j];
a2[j - 1] = a2[j];
a1[j] = x;
a2[j] = s;
}
}
}
}
trace(a1);trace(a2);
sort(a1, a2);
trace(a1);trace(a2);