Qualcosa del genere?
select t.*, round(dbms_random.value() * 8) + 1 from foo t;
Modifica:David ha sottolineato che questo fornisce una distribuzione non uniforme per 1 e 9.
Come sottolinea, quanto segue fornisce una migliore distribuzione:
select t.*, floor(dbms_random.value(1, 10)) from foo t;