You don't need to "type" it, just copy paste and edit the important parts. It might be "tedious" but it's certainly not complicated. And it's really not all that messy; there might be a bit of duplication but it's easy to read and edit.
You could also just use this alias:
alias joinall {
var %i = 1, %chans = #chan1 #chan2 #chan3 ...
while ($gettok(%chans,%i,32)) { .timer 1 %i join $v1 | inc %i }
}
; use this or add /joinall to perform dialog..
on *:CONNECT:joinall
I'm not sure it can get any easier than telling someone to put that in their remotes and modify the channels. Not even a builtin feature would be that easy. In fact the only way mIRC could do this natively would be if you setup all your channels using the Favorites dialog (Alt+J) and mIRC added some "randomize join delay" checkbox. But talk about tedious, try adding 20 channels in that dialog, you don't even have the luxury of copy paste.