Its already there.
Create a raid in raid system as you just wish (with monsters, bosses, announcements, etc; script may be included, as far as I remember), then add
enabled="no" in raids.xml for it.
Now, in globalevents, an example script:
Code:
function onThink(interval, lastExecution)
if(math.rand(0, 100) == 5) then
executeRaid("raid_name")
end
end
for example. You can also store in global_storage last time when raid was executed, such as check it with randomity.