Vous devriez pouvoir utiliser row_number()
(qui est une fonction de fenêtrage
) pour assigner le "itérateur" que vous voulez. Cela créera un numéro séquencé pour chaque ligne :
select *
from
(
select col,
row_number() over(order by col) rn
from yourtable
) src
order by random()
Voir SQL Fiddle avec démo