Missing a generation is just what happens with recessive genes. It's the dominant form which can't skip generations.
For example, blue eyes are also recessive. We each have two copies of the eye-colour gene, which can be blue or brown. Blue-blue gives blue eyes. Brown-brown gives brown eyes, but so does blue-brown. This means that a brown-eyed person could be either brown-brown or blue-brown. A brown/brown person can only have brown-eyed children (because they will have at least one brown), and two blue-eyed parents can only have blue-eyed children.
I have brown eyes, but as my brother, sister and mother have blue, I know that I am genetically blue/brown, and so is my brown-eyed father, and my two brown-eyed daughters (their mother is also blue-eyed).
What you can't get is the dominant form skipping a generation. Everyone with the brown-eyed form of the eye-colour gene has brown eyes, even if it's only one of the two copies -- this means that unlike red hair or blue eyes it can't "hide" in a generation.
So, Lindy Loo, your partner (if not also red-haired) must have one of the chromosome pair with the recessive red-haired gene, with a more dominant colour on the other. Each of your sons happened to get the red one of those, which together with one of your two reds gave them red-red, coming out red. What could not happen is for you to have a child with non-red hair if your partner had also been red-haired.
There is a health warning with all this. There are often different genetic ways of arriving at the same apparent thing. For example, I once knew a woman who had unusual orange-hazel eyes, which I'd have called brownish (in fact they exactly matched her reddish hair). Both her parents were blue-eyed -- but "blue" varies, and she happened to have an extreme "brownish" form of blue which did not actually look blue at all. So don't accuse your partner before having a DNA check!