Zoiets als?
select t.*, round(dbms_random.value() * 8) + 1 from foo t;
Bewerken:David heeft erop gewezen dat dit een ongelijke verdeling geeft voor 1 en 9.
Zoals hij aangeeft, geeft het volgende een betere verdeling:
select t.*, floor(dbms_random.value(1, 10)) from foo t;