Generally (ahem,LOL) I agree. It's partly random, but the more wins a unit makes, especially against higher or equal units the more likely you are to have one.
I've become a big fan now of planting warrior armies on the door step of the closest and first Ai I meet. This gets me a general fairly quickly, chokes a resource square, and best yet, I have a general sitting there for when my higher tech'd offense arrives.
If there's a gap in the time it takes to get higher teched units, say 10 turns, I'll demand a tech, using the peace time to rally or build the forces. If you gotta wait, might as well get something while waiting. Culture may push your units out in the mean time, but when timed well, you can have a damn nice stack. High tech offense can still use the other armies general, and the initial army that earned it can do clean up.