It's not that giving guns to good guys don't work, it's the training, most people don't train for active combat scenarios. They have to have training to fundamentally practice day in and day out until they know the layout of the school or place by hearing alone. What most people think of as training is essentially daycare and NOT training at all. You've got multiple issues to worry about with training, you need to train fight or flight responses, you need to train for any threatening stimuli, SERE training is good (survive/evade/resist/escape,) you need to desensitize yourself, you need good target practice.
All of that goes into training and let's be honest, unless it was specialized security, they're not going to be trained right because the average person doesn't do that. It's like with bush crafting or survival wilderness training, most don't have the skills because most don't have that mindset but you kind of need that mindset to have successful gun training for active shooter scenarios.
I'm not saying it's a solution but my solution would be to actively train "good" people for that situation but they're not willing to do it. Believe it or not, I've worked in govt agencies but not in a higher tier level job, let me tell you the training of anything no matter if it's dishwashing, food service or whatever... even small menial tasks are not trained properly at all. The management for anything in govt is SO incompetent that if people were to find out how these agencies are actually managed, they would be scared. Even hospitals, I've worked in hospitals where I wouldn't be surprised if a person's surgery was botched because of poor management and other things.
If people only knew.
So that's just my thoughts, it's not that giving guns to good guys doesn't work but there's a lot to take into consideration, you have to have good training and to make it into something that is repetitive so the person trains for those things. You can't just get a certification, hit some targets and then have a gun, think you're going to take someone out.