I found this:
The way it works is thus: A veteran pack is guaranteed an uncommon. There are three classes: Common, uncommon, and rare. Each of the items, or at least 3 of them, anyway, (I've never seen more than 3 uncommons in a pack) does a check to see what tier it will be. However, the 5th is and always will be an uncommon . . . except if there are no uncommons left. I'm sure the coding is something like this:
Item 5: Rolls to see if its uncommon or rare
If uncommon, it checks to see if there are any uncommons left
If so, it will randomly pick one of the uncommons
If not, it will give a common
In other words, just because an uncommon is guaranteed doesn't mean you default to rare if you have all the uncommons. A rare is a different class of item entirely. Its because of this fact that if I were still playing the demo, I would be considering opening Recruit packs instead of Veteran, because I unlocked every single uncommon, so I get maybe 1 rare per 15 packs now.
Uncommons are:
Every gun mod
Phalanx Pistol
Predator Pistol
Maelstrom SMG
Shuriken SMG
Avenger Assault Rifle
Mattock Assault Rifle
Katana Shotgun
Scimitar Shotgun
Mantis Sniper
Viper Sniper
Once every mod is level V, and every one of these guns is X, you will suddenly stop getting good items in vet packs. Its very dramatic actually; I opened 10 veteran packs at once, got an item on the first three, the third gave me my last gun mod, and proceeded to get NOTHING on the later 7.
This is information that people got by playing the Demo until there were no more items to unlock. I'm not sure if it's exactly like this in the final game (although I think it is).
The author of the post has made a good guide for another game, so I don't believe she's making it up
I'll update when I can confirm and delete if I can't.