Splines are very useful, indeed. If you want to do more research, check he general idea of "parametric curves".

Generally they work like (x,y) = f(p), and give you the position on the curve for p in [0..1] (or any other interval, but usually normalized). If you modulate the step size of p, you can speed up/ slow down your object while they follow the curve. You can also have sequences of curves that the objects will follow, but if you use splines you can make one spline with all twists and turns.

http://en.wikipedia.org/wiki/Parametric_equationThere are also examples for 3D curves and parametric surfaces there.

Edit: If you find a way to make splines from random parameter sets, you'll have a shooter where even you as creator can't predict the enemies, and it will be a constant challenge even for yourself