Calling a random function in a Coroutine

Hello everyone,

I was wondering if there is a way to stock functions on a List that a Coroutine can call randomly ?
In my case I want to randomly express between a list of five emotions that are basically like this:

void Happy()
{
do something
}   

void Sad()
{
do something
}   
...

And I would like to use them on something like that :

IEnumerator RandomEmotion()
{
    yield return new WaitForSeconds(Random.Range(5, 10)); 
    Random.Range(Emotion1, Emotion5);
}

Sorry, I’m not very familiar with Lists so if anyone have a idea on how can I proceed to achieve that that’s would be wonderful :slight_smile:
Antoine

Supposing all the functions share the same signature (returning void, with no parameter)

 private System.Action[] emotions ;

 void Happy()
 {
     do something
 }   
 
 void Sad()
 {
     do something
 }

void Start()
{
    emotions = new System.Action[]
    {
         Happy,
         Sad,
         ...
    };
}


 IEnumerator RandomEmotion()
 {
     yield return new WaitForSeconds(Random.Range(5, 10)); 
     int index = Random.Range(0, emotions.Length);
     if( emotions[index] != null ) emotions[index]();
 }