Properly implement Rand::generate