Это вариант алгоритма Фишера-Йейтса (как и другого решения), но он должен быть намного быстрее и перетасовывать вместо создания нового массива.
var source : Array = ["Q1", "Q2", "Q3", "Q4", "Q5", "Q6", "Q7", "Q8", "Q9", "Q10"];
var temp : String;
var index : int;
for( i = source.length -1 ; i > 0 ; i-- ){
index = Math.round( Math.random() * i );
temp = source[ i ];
source[ i ] = source[ index ];
source[ index ] = temp
}