Since you're not likely to do a range query on SSN and your scramble technique will produce duplicates eventually, just set them all to the same value. Also, one doesn't usually base test data on a permutation of production data as in many data sets the unique customers information can still be determined.
Every company I've worked with required test data to be generated/created from scratch, with a strict wall between production and test data. In fact, in many companies only a handful of developers have access to production data, if at all. I'm trying to point out that there's a fundamental flaw in what you're asking, namely that there are better ways to create test data than using real data.