Coroutine + List not working

I am new to Unity and coding in general, I made this script for a project of mine, what it is supposed to do
is make a list of 6 different randomly chosen numbers, it seems to be working well except for two things, I get an infinite loop and I think that the coroutine that I marked as failedRoutine is not stopping, causing a massive list creation.

Somebody can tell me what I am doing wrong?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TESTING : MonoBehaviour
{

    private void Start()
    {
        currentRoutine = StartCoroutine(CreateShop(0));
    }
    Coroutine currentRoutine; 

    Coroutine failedRoutine;

    List<float> itemsAlreadyInShop = new List<float>();
    IEnumerator CreateShop(float times)
    {


        float number;


        yield return new WaitForSeconds(0.25f);

        if (times > 5)
        {

        }
        if (times < 6)
        {


            number = Random.Range(1, 12);

           
            itemsAlreadyInShop.Sort();
            foreach (float item in itemsAlreadyInShop)
            {
                if (item == number)
                {
                    float stringTimes;
                    stringTimes = times + 1;
                    print("Routine " + 1 + stringTimes.ToString() + " failed because the randomized number " + number.ToString() + " equals our list item " + item.ToString());
                    failedRoutine = currentRoutine;
                    currentRoutine = StartCoroutine(CreateShop(times));
                    StopCoroutine(failedRoutine);
                }
            }


            itemsAlreadyInShop.Add(number);
            print("new item in list! number: " + number.ToString());

           

            times++;                           
            print(times + " rutine is done");
            print("item is " + number);
            print("current list is:");
            foreach (float item in itemsAlreadyInShop) 
            {
                print(item.ToString());
            }
            currentRoutine = StartCoroutine(CreateShop(times));
        }
    }

}

I already solved the problem using a different method