In that case the answer gets even easier. You can just use a variable in the text event to stop it from replying.

As an example:
Code:
on *:text:good morning:#: {
  if (!%staph) && ($asctime(HH) isnum 5-10) && ($rand(0,19)) {
    set -eu1800 %staph 1
    var %r = Response #1|Awesome response #2|Random response #3|Weird response #4|Something something #5
    msg # $gettok(%r,$rand(1,$numtok(%r,124)),124)
  }
}


With comments:
Code:
;Whenever someone says "good morning" the text event triggers.
on *:text:good morning:#: {

  ;Checks if %staph variable is empty, if current hour is between 5 and 10 and if $rand(1,20) equals to 1 (technically 1 in 20 chance).
  if (!%staph) && ($asctime(HH) isnum 5-10) && ($rand(1,20) == 1) {

    ;Sets %staph to 1 and makes mIRC unset it after 30 minutes or when you exit mIRC
    set -eu1800 %staph 1

    ;List of possible responses separated by | character
    var %r = Response #1|Awesome response #2|Random response #3|Weird response #4|Something something #5

    ;/msg to the channel with a random response.
    msg # $gettok(%r,$rand(1,$numtok(%r,124)),124)
  }
}