P=randomShelling(n,m)
P=randomShelling(n,m,k)
P=randomShelling(R,m)
P=randomShelling(R,m,k)
The function produces a list of facets of a random shellable simplicial complex. The order of the facets is a shelling.
The algorithm works by choosing one of the previous facets at random, and replacing one of its vertices with a new vertex chosen at random. If the choice meets the criteria of a shelling, that facet is added to list, otherwise it is discarded and the algorithm tries again. The first facet is chosen uniformly at random.
The call randomShelling(n,m) produces a *complete* chain  that is, a shelling of the mskeleton of the (n1)simplex, with the simplices listed in order, so that any initial subsequence of length d gives a (random) shellable simplicial complex with d facets.
The probability distribution for this random selection is presumably not the uniform one; it would be nice to write a reversible markov chain that could be used with the Metropolis algorithm to produce the uniform distribution, as is done in randomSquareFreeStep, and the randomSquareFreeMonomialIdeal codes


No claim is made on the distribution of the random chain.
The object randomShelling is a method function.