Currently, the only known way to generate addresses with a specific criteria (such as 1crof..., or using only 22 of the 58 possible characters) is to repeatedly generate private keys until one is generated that has an address that meets your criteria.
That is exactly what vanitygen does. From the docs:
prefix is possible, will provide a difficulty estimate, and will run about 30% faster. Exact prefixes are case-sensitive by default, but may be searched case-insensitively using the "-i" option. Regular expression patterns follow the Perl-compatible regular expression language.
Github repo: https://github.com/samr7/vanitygen