Allowing the player to generate all three characters from the ground up, or even to choose or buy them from a big pool, would totally throw the balance of the starting game. Customization is wide open right from the first level up, and I feel like that many options would be going too far.
Two other suggestions: give player two completely random characters (like now), let him customize remaining character with their abilities in mind.
Or have the three random starting characters start at “level 0”. Let the player distribute three (five?) points at the beginning as if leveling up to level 1.