Other solution if functions are indexed(probably not as effective, but easier to implement(no need to add functions to a switch)

Code:
void quest_1();
void quest_2();
void quest_3();

void execute_random(STRING* funcprefix, int count)
{
	void myfunc();
	if(myfunc = engine_getscript(_chr(str_cat(_str(funcprefix),str_for_num(NULL, (int)random(count)+1)))))
		myfunc();
	else
	 printf("There is missing an indexed function...");
}

int main()
{
	random_seed(0);
	execute_random("quest_", 3);
	return 0;
}



(sorry, was in a compressive mood :P)