What kind of shuffle would prevent the same word appearing next, but still repeated.. Help with shuffling a List

I want to randomise QuestionWords1 List strings so they don’t repeat together, but all are played 3 times

Any help appreciated.
Headscratching Noob
I did try Fisher–Yates shuffle but it still didn’t seem random enough and still clumped words together

![alt text][2]

 public static void ShuffleListExtension<T>(this IList<T> list)
        int n = list.Count;
        while (n > 1)
            int k = ThreadSafeRandom.ThisThreadsRandom.Next(n + 1);
            T value = list[k];
            list[k] = list[n];
            list[n] = value;
            Debug.Log("ShuffleListExtension index@ " + value);

        //***Each word must be repeated 3 times
        //but hopefully separated

     public static class ThreadSafeRandom
            [ThreadStatic] private static Random Local;
            public static Random ThisThreadsRandom
                get { return Local ?? (Local = new Random(unchecked(Environment.TickCount * 31 + 

what kind of shuffle would prevent the same word appearing next…

//array also had an error
int listSize = list.Count;
while (listSize > 0) //while list greater than 1

Not sure how to separate words so they don’t repeat134788-shuffle.png