Also, an update for anyone wanting to perform this sort of process, I needed to add a line that undefined the hate_target variable so that it would get a new random hate target next time the timer rolled around.  Before I did this, it would keep the original hate target indefinately.
	Code:
	sub EVENT_TIMER{
	if ($timer == 1){
			my $hate_target = $npc->GetHateRandom();
			my $hate_name = $hate_target->GetName();
			my $hate_id = $hate_target->GetID();  
			quest::shout("My hate target is $hate_name"); 
			$npc->CastSpell(5051, $hate_id);
			undef $hate_target;
			}
		}