How about instead of being random, the stats are maxed out if you’ve actually used that skill a lot since last level up. So if you try to level up the melee stat of a guy who’s only used bows, he’ll get +1. A guy that’s constantly engaged in melee gets +4. (or whatever you set to be max)
A guy that carry lots of gear/uses lots of fatigue gets to max out the fatigue stat, etc.
(Personally I’d love for stats to be increased after each battle, X-Com style)