Generalized Random Utility Models with Multiple Types