Hola r1d2m3.
No sé si es lo que estás buscando, pero hice una prueba muy simple con este código y parece funcionar ok.
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
begin
with ActionList1 do
Actions[Random(ActionCount)].OnExecute(Sender);
end;
Un índice [0] está haciendo referencia al primer TAction y [ActionCount -1] al último.
También es cierto, que es más fácil llamar directamente al nombre del procedimiento asociado...
Saludos