private void initialiseRandom() {
        int N           = (int)(double)network.params.get("N");
        double p        = (double)network.params.get("p");
        IndividualNetworkAgent[] vertices = new IndividualNetworkAgent[N];
        for (int i = 0; i < N; i++) {
            IndividualNetworkAgent v = new IndividualNetworkAgent( network.getNewNodeId() );
            vertices[i] = v;
            network.addVertex(  v );
        }
        
        for (int i = 0; i < (N-1); i++) {
            for (int j = (i+1); j < N; j++) {
                
                double x = ( IndividualBasedModel.getRandom() ).getDouble();
                if (x < p) {
                    Edge e = new Edge(vertices[i], vertices[j]);
                    network.addEdge(e, vertices[i], vertices[j]);
                }
            }
        }
    }