@MirceaKitsune
This is funny stuff : D
I got it figured out. You can use all entitys from the Moveables category (Create entity -> Moveables) and you need to set the spawnargs of all the items to frobable : 0 , otherwise strange things happen when you are holding one of the items. It doesn't matter where you put them. The next step will take care of it.
Next you need to create a trigger_sequencer (Create entity -> Triggers), name it Stuff, and target (ctrl+k) all of the items that you want to be thrown. The script will randomly pick one of the targets from the "list" of targets that this trigger_sequencer has.
Then you have to make a moving object, like a sliding door, to be the target that the stuff is thrown towards, and name it ThrowTarget. Here is an example of how I set the spawnargs on this (see video at the end):
Also you have to create a little brush and make it a func_mover (Create entity ->Func -> Movers) and name it Mover. This wil go, by script, to the position of the item that is to be thrown and then to the position of ThrowTarget, and the stuff binds to it, and unbinds.
The script to start it all is StartThrowingStuff and can be called by a target_callscriptfunction, an objective, etc.
Here is the script:
And here is a video of the test in my workshop, where the blue block is ThrowTarget, and the red cube is Mover (they shall be textured NoDraw ofc. but for now it shows a bit of the mechanics at work):
VIDEO: randomly thrown stuff by scary ghosts part 1
There are still tweaks possible, like having the stuff not thrown that hard, changing the ThrowTarget path, or have it thrown toward, but not directly at, the player. Even a throwing sound can be added and spooky light/particle fx : )