Forgive my gross reductionism here, but I'm going to try to put your problem into my own words and see how I'd approach it. I hope this is helpful.
Currently the question is "how many guns (and what names) do I need for fun progression." Put another way, you are trying to generate a list of weapons and map them to "stages" (for lack of a better word) in your game.
First thing that occurs to me is to flip the perspective on its head to see if that helps.
Reform the question thus: try to generate a list of "stages" (areas, regions, maps, dungeons, whatever the case may be :)) and then map them to weapons. Maybe the starting machine gun is a lot of fun for the first one or two areas, but then either you want a change and/or need a change because you want to add a new monster mechanic (e.g. zombies with riot shields). So, underslung grenade launcher OR armor piercing rounds OR whatever.