I've used a tool called Datatect for this.
Some of the things I like about this tool:
- Uses ODBC so you can generate data into any ODBC data source. I've used this for Oracle, SQL and MS Access databases, flat files, and Excel spreadsheets.
- Extensible via VBScript. You can write hooks at various parts of the data generation workflow to extend the abilities of the tool.
- Referentially aware. When populating foreign key columns, pulls valid keys from parent table.