Depending on how you want it to work exactly, could be something as simple as:
void main()
{
int iPercent = Random(100)+1;
object oSpawnPoint = GetWaypointByTag("tag of waypoint to spawn fairy");
location lLocation = GetLocation(oSpawnPoint);
if (iPercent <= 10) //10 percent chance to spawn the fairy
{
CreateObject(OBJECT_TYPE_CREATURE, "fairy res ref", lLocation, TRUE);
}
}
...placed into the "OnEnter" of a trigger. And you would just need to put a waypoint somewhere with a unique tag and put that tag in this script. As it is, it would trigger every time anyone entered the trigger so you could put a delay in there too to make it so you have to wait awhile before you get another chance to spawn it. Or you could make the 10% chance higher or lower, etc, etc.