I'm still not sure I follow what you want here...

Code:
on *:text:!draw:#:{
  set %names Bulbasaur Ivysaur Venusaur Charmander Charmeleon Charizard Squirtle Wartortle Blastoise Caterpie Metapod Butterfree Weedle Kakuna Beedrill
  var %c1 $gettok(%names, $rand(1,15), 32)
  var %c2 $gettok(%names, $rand(1,15), 32)
  var %c3 $gettok(%names, $rand(1,15), 32)
  var %c4 $gettok(%names, $rand(1,15), 32)
  var %c5 $gettok(%names, $rand(1,15), 32)
  while (%c2 == %c1) { var %c2 $gettok(%names, $rand(1,15), 32) }
  while (%c3 == %c1 || %c3 == %c2) { var %c3 $gettok(%names, $rand(1,15), 32) }
  while (%c4 == %c1 || %c4 == %c2 || %c4 == %c3) { var %c4 $gettok(%names, $rand(1,15), 32) }
  while (%c5 == %c1 || %c5 == %c2 || %c5 == %c3 || %c5 == %c4) { var %c5 $gettok(%names, $rand(1,15), 32) }
  .msg $chan You drew %c1 $+ , %c2 $+ , %c3 $+ , %c4 $+ , and %c5 $+ .
  set %names $remtok(%names, %c1, 32)
  set %names $remtok(%names, %c2, 32)
  set %names $remtok(%names, %c3, 32)
  set %names $remtok(%names, %c4, 32)
  set %names $remtok(%names, %c5, 32)
}
on *:text:!draw2:#:{
  var %c1 $gettok(%names, $rand(1,10), 32)
  var %c2 $gettok(%names, $rand(1,10), 32)
  var %c3 $gettok(%names, $rand(1,10), 32)
  var %c4 $gettok(%names, $rand(1,10), 32)
  var %c5 $gettok(%names, $rand(1,10), 32)
  while (%c2 == %c1) { var %c2 $gettok(%names, $rand(1,10), 32) }
  while (%c3 == %c1 || %c3 == %c2) { var %c3 $gettok(%names, $rand(1,10), 32) }
  while (%c4 == %c1 || %c4 == %c2 || %c4 == %c3) { var %c4 $gettok(%names, $rand(1,10), 32) }
  while (%c5 == %c1 || %c5 == %c2 || %c5 == %c3 || %c5 == %c4) { var %c5 $gettok(%names, $rand(1,10), 32) }
  .msg $chan You drew %c1 $+ , %c2 $+ , %c3 $+ , %c4 $+ , and %c5 $+ .
  set %names $remtok(%names, %c1, 32)
  set %names $remtok(%names, %c2, 32)
  set %names $remtok(%names, %c3, 32)
  set %names $remtok(%names, %c4, 32)
  set %names $remtok(%names, %c5, 32)
  .msg $chan The remaining cards are %names
}