public Node pickRandomNeighbour() {
        if (linkSet.size() == 0) {
            return this;
        }
        
        final int randomLinkPosition =
                (int) (Math.floor(Math.random() * linkSet.size()));
        int linkPositionCounter = 0;
        
        /* Iterates over each link in the set of links belonging to this node. */
        final Iterator<Link> itLinks = linkSet.iterator();
        Link currentLink;
        
        while (itLinks.hasNext()) {
            currentLink = itLinks.next();
            
            if (linkPositionCounter == randomLinkPosition) {
                return currentLink.connectedBy(this);
            }
            
            linkPositionCounter++;
        }
        
        return null;
    }