Oracle | Data aleatória

Pretende-se gerar uma data aleatória entre 2006-12-01 e 2006-12-20 (um intervalo de 20 dias). Para fazer o cálculo transforma-se a data para o dia juliano em número: TO_CHAR(TO_DATE('2006-12-01', 'YYYY-MM-DD'), 'J'):
SELECT TO_DATE(TRUNC(DBMS_RANDOM.VALUE(
       TO_CHAR(TO_DATE('2006-12-01', 'YYYY-MM-DD'), 'J'),
       TO_CHAR(TO_DATE('2006-12-01', 'YYYY-MM-DD'), 'J')+20)), 'J')
FROM DUAL;