I think everyone needs a 22 rifle. Period...... Also a good reliable carry gun, a tool that's completely different from every other gun. Something you don't mind getting knocked around and wet and basically abused. I picked glock because It fit me better, but there are a lot of manufacturers that fill this roll these days. I also think everyone needs an accurate bolt action rifle, I don't have a lot of money so I went savage and for the money its hard to get a more accurate rifle out of the box. I also think everyone needs a pump action 12 gauge, a 1911, a revolver of some type, something black powder, an AR and an AK. I built my own AR using parts from PSA, and as far as AK's go, I have a Saiga that I converted and a VZ 2008, and I honestly think the VZ is better, and it was an amazing deal $400 with 5 mags cleaning kit and mag pouch. Those in my opinion are the absolute must haves, at any budget. After that the list gets larger and larger depending on the amount of money you have to spend. Of course I believe every able-bodied man should have an m1 garand no more than a foot from him at any time, but because we don't live in a truly free country and can't get guns to be imported back into our country that are due to us I can't afford one. I'm only just now looking into CMP, but it looks like its a bit of a process. More importantly though you need to make sure you have a lot of ammo for every gun you already have, before you go buying more guns. Everything keeps getting more and more expensive and the sooner you can buy it, the cheaper it is. Nothing would suck more than having a great gun that the ammo is now expensive for.
It's always nice to have one that not everyone has, especially if it is one that has gone out of style. Excellent guns can be had for cheap. .257 Roberts, .218 Bee, etc.
duck i think you hit all of the have to have calibers for both pistol and rifle except the 22 mag and the 40. thats a perfect shtf list bc in the appocolypse your gonna want what the vast amount of armed personel in the world have