Refactored random generation classes