public ImprovedNoise( Random random ) {
for( int i = 0; i < 256; i++ ) {
p[i] = i;
}
for( int i = 0; i < 256; i++ ) {
int i1 = random.Next( 0, 256 );
int i2 = random.Next( 0, 256 );
int temp = p[i1];
p[i1] = p[i2];
p[i2] = temp;
p[i1 + 256] = p[i2];
p[i2 + 256] = temp;
}
}