Good luck, that's going to be a lot of work.
You should start with small sub-problems that could have applications to other things, like random texture generation. That way whatever you come up with will be much more widely useful, even if you don't finish.
For generating sounds effects, you should check out the
source code for sfxr. sfxr is a program that automatically generates a wide variety of 8-bit sounds in certain categories (like "powerup", "hit", "die", etc), and it's basically exactly what you want for this.
Genetic algorithms could be a fun way to generate new enemies dynamically. They work on a "survival of the fittest" method where enemies are generated with some list of random parameters, and ones that do well "reproduce" to form new enemies that inherit some of their features. I used this in my game Primeval Labs - you can get the
source for that here if you're interested.