In my campaign, I make players roll, but if they get less than half of the max, then they get exactly half of the max.
So the minimum that a fighter can get is 5, and the minimum that a wizard can get is 2. It prevents the "hopeless" syndrome of rolling 1,1,3,2 for your fighter's HP, it retains randomness, and it also doesn't increase the number of characters with very high numbers of HP, they are just as rare as they otherwise would be.
In the campaign I play in, he allows us to roll two dice and take the higher. While this also helps to prevent "hopeless" characters, it makes it more likely that a PC will get maximum HP throughout his or her career, and it is still possible to get very low results - both of these are undesirable IMHO.