Random – Unity C # Random Print Strings in the list after their selection

I have two lists with 4 channels each. I mix them, then I select a string from each list to create a combination of strings from the two lists. I want the four combinations (written below) to be repeated four times (so 16 combinations in total), but each of these combinations must be presented in a random order.

Dog

Lion

Dog and car

Lion and car

From this code, I mix the strings, then I select the first string of each list, I use it with for loops, and then I generate 16 combinations. This code can be mixed, selected and the prints are perfectly finished BUT prints the first selected channel – 4 times, then the second selected channel – 4 times. So everything works fine except that the order is not random. So, if dog is selected in the first list, he will print: dog, dog and car, dog, dog and car, then he will do it for the lion (for the next 4 impressions). So, it will always print the selected channel 4 times in the first list. While I want this selection to be random. Any advice would be useful.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
using UnityEngine.UI;
using the system;
using System.Linq;

public class randomLetters: MonoBehaviour
{

listing mylist = new list();
listing mylist2 = new list();


selected string;
selected string2;

empty Start ()
{
mylist.Add ("dog");
mylist.Add ("lion");
mylist.Add ("dog");
mylist.Add ("lion");

mylist2.Add ("carfordog");
mylist2.Add ("carforlion");
mylist2.Add ("carfordog");
mylist2.Add ("carforlion");

Mix (mylist);
Mix (mylist2);

StartCoroutine (Wait ());
}


IEnumerator Wait ()
{


for (int i = 0; i <4; i ++)
{
selected = mylist[i];

for (int j = 0; j <4; j ++)
{
selected2 = mylist2[j];


if (selected == "dog" && selected2 == "carfordog")
{
Debug.Log ("dog and car");

}
else if (selected == "dog" && selected2 == "carforlion")
{
Debug.Log ("Dog");
}
else if (selected == "lion" && selected2 == "carforlion")
{
Debug.Log ("Lion and Car");
}
else if (selected == "lion" && selected2 == "carfordog")
{
Debug.Log ("Lion");
}

return return new WaitForSeconds (1);
}

return return new WaitForSeconds (1);



}

}


Empty Shuffle (List lists)
{
for (int j = lists.Count - 1; j> 0; j--)
{
int rnd = UnityEngine.Random.Range (0, j + 1);
temp string = lists[j];
lists[j] = lists[rnd];
lists[rnd] = temp;
}
}

}