After I finish my Pac-Man game, I'm going to move up to Super Mario Bros. BatVink got it, make an engine which will handle tons of features, and have it load files. For example in Super Mario Bros, the jumping, AI, fighting, and pipes work exactly the same, but there's tables of data telling where to put them.
I'd be a good idea to give the levels names like "World 1-1" so the level loading routine can just increment the current level number and load that file.
Keep in mind that when I say make an engine with a ton a features, really put a ton in. If you look in the DS verison of Super Mario Bros, all the enemies and items in all the levels jump or change their direction whenever a certain instrument in the music plays. Now there's some spare development time. I find the instrument playing a good time to jump on the enemies.
About placing the enemies in random locations, it's really your choice. Most games have them in predetermined locations, however; that can make it more or less frustrating in hard levels because you can simply memorize where the enemies are, but if the level gets to long you get this:
Player: "Whew! I finally got to the top of the tower, I just can't figure out how to get past this guy."
Enemy: (gunshots)
Player: "AGHH! Now I've got to do the level all over again! It's so boring, I already know how to get past 10 minutes of easy enemies!"