I have made a target sensor using the innards of a piezo speaker as sensor. Basically the "classical knock sensor".
It works perfectly well, and setting the treshold eliminates false positives.
I have however only tested it with a blowgun and a BB-gun (the firing range is closed for the winter).
There is an interesting document here:http://www.dtic.mil/cgi-bin/GetTRDoc?AD=AD671843
The military targets I have used, have been made either from an aluminum plate a couple of mm thick, or from polyethylene, 4-5mm thick.
The impact on the target from a high speed projectile is quite violent, and the target mechanisms and sensors are pretty overengineered. They have to be, they really take a good beating!
Targets were from "SAAB training systems".
The old version used a compressed air bottle and pneumatics, the new versions use electric motors to raise and lower the target.http://www.saabtraining.net/PDF/infantry_targets.pdf
The sensors on the older targets were micro switches with a weighted contact arm inside. Vibration would move the switch, and inertia would make the weight break the circuit.
Somewhere I have a couple of broken switches, if I can find them, I'll post a picture.
My main worry is to limit the signal going to the arduino.
With the microswitch it is easy: look for at break in the circuit.
But with the piezo, I'm afraid that I'll fry the pin with the generated voltage.