chisq.test with simulate.p.value=TRUE uses the Patefield algorithm, this is not documented, and the original reference is not given, as it ought to be. The reference is: Patefield,W. M. (1981) An efficient method of generating r * c tables with given row and column totals (algorithm AS 159). Applied Statistics 30, 91-97. Kjetil Halvorsen