Něco jako?
select t.*, round(dbms_random.value() * 8) + 1 from foo t;
Edit:David poukázal na to, že to dává nerovnoměrné rozložení pro 1 a 9.
Jak zdůrazňuje, následující poskytuje lepší distribuci:
select t.*, floor(dbms_random.value(1, 10)) from foo t;