Of course, it's not easy. But it's not impossible either. A good samaritan may not always be able to help, but sometimes they can. In such a situation they'd definitely need to be careful, and in general it's inappropriate for armed civilians to try to act like police in situations like this (e.g. hunting down the attacker). But armed civilians can protect the people they are around, and they can stop the shooter from just going from room to room willy nilly (as happened at Virginia Tech) until they run out of bullets. More than that, as I mentioned, by preventing schools from becoming the havens of defenseless individuals that they are today it will have a deterrent effect against attackers. The reason why schools are such a common choice is precisely because there are lots of people there and everyone knows they are defenseless.