Again, I see this. Not that it's wrong, but as SunnyD commented in another snippet of yours setting a variable each time someone types isn't necessary. This would be the ideal way to come about it, in my opinion.
on $*:TEXT:/^[!]SwagTest/Si:#: {
Using the above you can add more ways to trigger it by adding more special characters inside the [ ]'s.. also, there's no need for the $strip because the /S switch strips it automatically.
Also, I'd like to add that this can be shortened to just 4 lines - since the results don't require anything more than a mere timer. You could just load the results into a text file and do it this way
on $*:TEXT:/^[!]SwagTest/Si:#: {
Msg $chan 1,4***** Collecting $nick's swag Data
timer 1 1 Msg $chan 1,4*******this my take a while if $nick doesnt have much swagger
timer 1 3 msg $chan $read(SwagResults.txt)
}
This eliminates the need to set random variables each time. Reading from the text file will randomly pull a result and message the channel. :)
Not that your coding is wrong by any means. Just offering some constructive criticism. Good work, it does as it should.