First of all - a number must not occur twice, that is implied since we're talking about permutations. So filling the table with a simple random(255) function won't work.
Secondly, you need to ensure that there are no premature recurrence patterns:
Consider the values 1,2,3,4 - the permutation table 4,3,2,1 is not a very good one because recurrence happens immediatelyof its short cyclic properties, i.e. 1 -> 4, 4 -> 1. Likewise with 4,2,3,1 or 1,2,3,4. The optimal tables take you all the way through all positions: 3,1,4,2 or 2,4,1,3.
This property becomes increasingly important as you increase the number of dimensions and perform recursive lookups.
However this approach alone may create clusters of too similar values, which may or may not be wanted, which leads me to next point.
Thirdly, For larger tables like oneWhen you generate a table with 256 valuesthe non cyclic properties, you need to ensurestep through remaining unassigned indices in a uniform random distribution, so you may want tomanner. When possible constrain the random step distance here to a certain min and max range, e.g. 5..120 or somethingto avoid clustered groups of similar values. These numbers are worth experimenting with.