Чем плох предложенный вами вариант? Вот, скажем, он же в коде (код кривой, но рабочий).
Код AS3:
package
{
import flash.display.Sprite;
import flash.events.Event;
public class TestProject extends Sprite
{
public function TestProject():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(event:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// Тестовая XML
var xmlString:String = '<?xml version="1.0" encoding="UTF-8"?><data><question>Where is my mind?</question><question>So what?</question><question>No fun?</question></data>';
var xml:XML = new XML(xmlString);
// Создаем массив
var questions:Array = [];
// Заносим в него вопросы
for (var i:int = 0; i < 3; i++) questions[i] = xml.question[i];
// Выводим вопросы в случайном порядке
var index:int;
for (var j:int = 2; j >= 0; j--) {
index = Math.round(Math.random() * j);
trace(questions[index]);
questions.splice(index, 1);
}
}
}
}