public List<Country> randomCountriesFromDifferentContinents(Country startPoint, int size) {
        List<Country> neighbours = new ArrayList<Country>(size);
        int tries = MAX_RANDOM_TRIES;

        do {
            Country next = randomCountry();
            boolean canBeAdded = true;

            if(StringUtils.equals(startPoint.getContinent(), next.getContinent())) {
                canBeAdded = false;
            }

            for(Country country : neighbours) {
                if(StringUtils.equals(country.getContinent(), next.getContinent())) {
                   canBeAdded = false;
                }
            }

            if(!neighbours.contains(next) && canBeAdded) {
                neighbours.add(next);
            } else {
                --tries;
            }

            if(tries == 0) {
                tries = MAX_RANDOM_TRIES;
            }
        } while (neighbours.size() < size);

        return neighbours;
    }