What if you had to start out as a marine and then as you rank up 10 or 20 levels (depending on how hard it is) you get to be an odst then rank up 10 or 20 levels again as an odst and then get promoted into a spartan. This way only people who deserve to be a spartan will be a spartan for a while untill everyone else eventually gets there.
This would be working for multiplayer