private List<U>mixTwoLists(List<U> l1, List<U> l2)
    {
        
        int newSize =(l1.size()+l2.size())/2;
        //System.out.println("newSize"+newSize);
        List<U> newList = new ArrayList<>();
        for(int i=0; i<newSize; i++)
        {
            newList.add(rFunc.getRandom());
        }
        boolean flag = true;
        Random r= new Random();
        for(int i =0; i<newSize; i++)
        {
            if(Math.random()<0.5)
            {                
                if(i<l1.size())
                {
                    newList.set(i, l1.get(i));
                }
                else
                {
                    newList.set(i, l2.get(i));
                }
            }
            else
            {
                if(i<l2.size())
                {
                    newList.set(i, l2.get(i));
                }
                else
                {
                    newList.set(i, l1.get(i));
                }
            }
        }
        //debugging
        /*
        System.out.println("List one");
        l1.forEach(x->{System.out.println(""+x);});
        System.out.println("List two");
        l2.forEach(y->{System.out.println(""+y);});
        System.out.println("List mixed");
        newList.forEach(z->{System.out.println(""+z);});
                */
        return newList;
    }