magnetic coil gun

Regarding the discharge triggering:

My initial "solid-state" thought was IGBT or TRIAC - something of that nature; might not be cheap, though.

A non-solid state method might be to use a spark-gap discharge trigger; basically, you set up a pair of electrodes separated by a small gap; this is your "switch" (hooked between your coil and cap bank for the coil). Rig up a 555 timer or something as an async multivibrator (you could also experiment generating the waveform with an Arduino). Use an optocoupler to output this into a transistor/mosfet controlled voltage booster circuit (like the simple ones used for homemade stun devices), the output of which is connected across the air-gap electrodes. When the 555 is triggered (by the Arduino, or you output the waveform directly), you generate a spark-discharge across the terminals of the air-gap, which ionizes the air and forms a path for the main cap-bank to trigger. You could place the spark-gap in a vacuum for better efficiency, but if you keep the gap small, it shouldn't be a big issue.

That's my thought anyhow; I've never done this (or played with HV circuits). Needless to say, such circuits and arrangements with a coilgun are very dangerous and should be respectfully handled. One hand in pocket rule at all times.