@lodarletarn: Det du gör nu är att du går igenom varje kontonummer i listan, och jämför det med själva listan. Det du bör göra är att skicka det genererade kontonumret till funktionen, och jämföra med det istället.
Dessutom kör du en while-loop som lägger till kontonumret så länge det inte finns (förutsatt att din godakännaKontoNr-funktion skulle fungera rätt). Detta är väl inte vad du är ute efter? Generera i stället ett nytt kontonr tills du får ett som inte redan finns, och lägg sedan till det i listan.
Tips som inte krävs för korrekt program:
Alla listor och samlingar (List och Set) har funktionen contains som kollar ifall ett objekt redan finns i listan. I ditt fall med en lista så är denna funktion dock inte effektivare än sättet du gör det på.
Om ordningen i listan inte är viktig för dej, så kan du använda dig av ett Set i stället. Set kan inte innehålla duplikat, men de har heller inte en ordning (undantag är t.ex. LinkedHashSet, som är en kombination av LinkedList och HashSet). Framför allt HashSet är bra i ditt fall, då funktionen contains på den är väldigt snabb.
En sista detalj är att det i verkligheten inte är effektivt att slumpa fram nummer och kolla om de redan finns. Tänk om du t.ex. redan har skapat 99 kontonummer, och bara har ett ledigt nummer kvar. Du kommer då att måsta slumpa fram väldigt många tal innan du råkar slumpa fram just det sista lediga. Undantag är t.ex. unika ID:n (t.ex. UUID), som är så långa att chansen att du får två likadana är nästan obefintlig.