Спасибо за помощь, но я решил все же сам подумать над проблемой, перепробовал кучу вариантов и нашёл на мой взгляд самый лучший с помощью перемешивания всего массива.
Код AS3:
var arr:Array = new Array();
var arr2:Array = new Array();
var swap,tmp, num:uint;
num = 5;
for(var i = 0; i < 20; i++)
{
arr.push(i);
}
for(var j = 0; j < arr.length; j++)
{
swap = Math.floor(Math.random() * j);
tmp = arr[j];
arr[j] = arr[swap];
arr[swap] = tmp;
}
for(var ii = 0; ii < num; ii++)
{
arr2.push(arr[ii]);
}
trace(arr2);