How to Generate Random Data in Oracle

DROP TABLE t;
CREATE TABLE t (
  x VARCHAR(20),
  y NUMERIC(20,2),
  z INT
);

BEGIN
  FOR i IN 1..20000 LOOP
    INSERT INTO t VALUES (
      dbms_random.string('L', 20),
      dbms_random.Value,
      dbms_random.value(1,1000)
    );
  END LOOP;
  COMMIT;
END;
/