I'll start by agreeing with Heck: there's nothing inherently wrong with a bucket of rocks in the classroom. The rocks aren't really the problem. But expecting kids to throw rocks at a rifle-toting person (another kid or an adult) hunting them like animals isn't good for them or anyone. I'll sum up why in one word:
Human instinct in a fight-or-flight situation where the odds are stacked against you is to run. Adrenaline takes over, and heroism flies out the window. Courage isn't the absence of fear, it's the knowledge that the situation can be dealt with by superior training, knowledge, or a desire to not panic. If I was drowning, I'd rather a brave rescue swimmer came to save me than a foolhardy hero who can't swim.
Expecting children to summon up the courage to face down the barrel of a gun and throw rocks at the shooter is expecting a miracle. It very likely won't happen. It would be incredibly unlikely that anyone who did throw a rock would hit the shooter in a way to disable him. Yes, of course the high school varsity pitcher might be in the room and bean the shooter right in the head, knocking him out, but even he could miss in the fog of battle.
Marines train for 12 weeks where Drill Instructors break them down then build them back up as warriors. They are trained to run to the sound of gunfire. Soldiers are trained that their battle buddies are their best friends apart from their rifles. They give their lives for their comrades in arms because they are trained to. Kids might have the desire to save their friends, and in fact there are several heroes in the Parkland massacre who did exactly that, and paid with their own lives. But we can't expect our kids to become soldiers.
Having a bucket of rocks in the classroom creates a dare for kids to be heroes, and most will fail in the actual situation. What are schools to do, run realistic drills and let the kids pelt someone with rocks to build confidence? That seems ridiculous, but it would be the only way to justify a bucket of rocks. Worse than failing, those who muster the courage to throw a rock become like the flame thrower operator in WWII. Nobody wanted the flame thrower, because it was like having a target on your back (one filled with jellied gasoline). Every enemy soldier zeroed in on the flame thrower.
Let's be serious: the shooter will kill the kids with the rocks first. The kids without rocks instinctively know this. The entire exercise is one of natural selection against rock-grabbing children with bad arms, and that's a tragedy worse than the shooting itself.
And one more reason: since the rock defense is now public, any potential nut job who wants to shoot a school will account for it. The Aurora movie theater shooter wore body armor. The Parkland killer pulled a fire alarm to get students into the hallways. Who, when the exit is within sight, would run back into the classroom to grab a rock?
I suppose that if we could predict how a shooter will react in a given situation, we could then predict when shootings will happen. But if we could predict what the shooter might do, then we could find a guaranteed way to stop him, apart from shooting him or creating a deterrence strong enough for him to believe he won't be able to carry out his evil deed, but will only be killed before he starts. Sadly, the only way I know to do this is to put armed people inside the schools, and not inform the kids where they are.
Like Sky Marshals on airplanes, not knowing who is armed creates enough doubt in the nascent shooter's fantasies before they turn real, that it--not rocks--could deter the crime. And should it be tested, bullets will work, when employed by trained people who won't react like kids with rocks.
Having buckets of rocks in the classroom isn't dangerous to the kids at all (in most classrooms at least). But we can't expect our children to be David in the face of Goliath. I'm sorry Peter, but it just won't work.