I think what Jeff is after is a matrix randomly populated with the values that have been created by John's formula.
If so, one approach could be to make a random list of all the numbers and then create a matrix of these values
1. do what John has told you
2. name the range of the values that John's advice created
3. below your 20 lines (or whatever) have a list from 1 to the "sum of all the entries" (probably best have the second value as "=if(cell_above<"sum of all entries",cell_above+1,"")" [fill in the necessary cell references or named ranges and drag it down as far as is necessary]
4. Assuming point 3 started in A25, say, make B25 equal to "=if(A25<>"",Rand(),"")"
5. In C25 have "=if(A25<>"",Large("name of range in 2",A25),"")"
6. In D25 have "=If(B25="","",Index($C$25:$C$x,Match(Large($B$25:$B$x,A25),$B$25:$B$x,0)))" where x is the the last row number (so row x, column A holds a value equal to the sum of the Entries).
What you should have now is a random list of values consisting of the entries listed in the bit John sorted for you. I'll refer to this D column part as array1. (Aside - there was a post a few weeks ago about a random list of numbers that may be helpful, some people had very quick ways of setting them up but I couldn't see it when I searched for it - anyone else know the one I mean?).
The next problem is putting them into a g by h array/grid (I assume g would be 20 in this instance, being the number of rows) as you can't be certain the sum of the entries will be a rectangular number. If it isn't, how would you deal with it? Are you happy for last few entries to be blank and if there is more than one would you put the blanks in the last column or row of the g by h matrix?
Assuming you'd put the blanks in the last column:
Set up a set of headings in the AA column and along (the number of columns is obviously equal to the sum of the entries divided by the number of rows (20 in this case), rounded up. Put a 1 in AA1, a 2 in AB1 etc as far as you need to go across. Then in AA2 (the top left entry for your matrix) type "=index(Array1,(AA$1-1)*20+ROW()-1)". This should equal the number in D25.
The above is set up to work on 20 entrants. You could refer to a named cell equal to a countA function (or something) to make this more variable.
Apologies if some of this is slighly off as I've not set up the spreadsheet (a "quick" answer during my lunch hour). May be able to check back in for problems in a couple of hours, otherwise it will be tomorrow. If anyone else follows what I was aiming to do and can provide answers in my absence, please be my guest.
D