Pues al respecto del Random-Mon yo soy más enginer que Klein, esto debería funcionar:
Defines una variable, si la variable se condice con un determinado valor se entrega un pokemon y hay una diferencia entre los mensajes que puede transmitir el NPC.
Saluditos~
EDIT: lo he probado en mi...