Systems and methods generate a string based random permutation (SBRP). The SBRP may be used for any application which uses permutations to generate values for security or randomness. The SBRP may operate one directionally so that resulting permutation vectors cannot be reverse engineered to obtain the underlying algorithm. An exemplary embodiment uses remove and replace sub-processes which identify duplicate values in a vector. The identified values are changed to another value that is not within the vector range of values. Then, the same elements are given a new value within the vector range of values that does not already exist among the vector elements in the vector.