.NET library to generate random strings. This package is based on the original RandomString4Net package by Lakhya Jyoti Nath.
$ dotnet add package StuceSoftware.RandomStringGeneratorAuthors :
Jeff Shergalis
Lakhya Jyoti Nath (ljnath) Author of RandomString4Net
Date : September 2020 - October 2024
StuceSoftware.RandomStringGenerator is a fork of RandomString4Net that has been updated to support the latest .NET versions, along with other various quality of life and performance improvements. The library is developed in C# to provide a simple means of generating random strings from various categories. (Future roadmap will include the ability to pass in user defined collections of characters for generation)
It is fast and supports string generation of various lengths. It can be used to generate either a single random string or a list of them.
Random strings can be of types lowercase, uppercase, numbers and symbols. It also allows you to generate random strings with only a subset of
symbols from the supported list. It is an ideal library for use in projects such as:
These types are defined by an enum CharClasses which has the [Flags] attribute, making it easy to combine the different classes.
Breaking Changes :rotating_light:
Switched to a [Flags] enum for CharClasses
RandomStringGenerator class is now non-static. The constructor takes an IRandomSource object, which is used internally to generate random values.
Two implementations of IRandomSource are provided in the library: SystemRandomSource and SecureRandomSource.
NuGet Package StuceSoftware.RandomStringGenerator
dotnet add package StuceSoftware.RandomStringGenerator
using StuceSoftware.RandomStringGenerator;
using StuceSoftware.RandomStringGenerator.RandomSourceImplementations;
var randomStringGenerator = new RandomStringGenerator(new SystemRandomSource());
// generating one random string from lowercase alphabets
var randomString = randomStringGenerator.GetString(CharClasses.Lowercase);
System.Console.WriteLine(randomString);
// generating 100 random strings using both upper and lower case alphabet, numbers and all supported symbols
var randomAlphaNumbericStrings = randomStringGenerator.GetStrings(
CharClasses.Lowercase | CharClasses.Uppercase | CharClasses.Numbers | CharClasses.Symbols, 100);
foreach (string s in randomAlphaNumbericStrings)
System.Console.WriteLine(s);
// generating 200 random string using uppercase alphabet and custom symbols
var randomAlphabetWithCustomSymbols = randomStringGenerator.GetStrings(CharClasses.Uppercase, 200, "/+*-");
foreach (string s in randomAlphabetWithCustomSymbols)
System.Console.WriteLine(s);
// generating 1000 true random strings of length 20 using uppercase alphabet with custom symbols
var trueUniqueRandomStrings = randomStringGenerator.GetStrings(CharClasses.Uppercase, 1000, 20, "/+*-", false, true);
foreach (string s in trueUniqueRandomStrings)
System.Console.WriteLine(s);
// generating 100 random strings using both upper and lowercase alphabet, numbers and custom symbols
var randomAlphabetWithCustomSymbols = randomStringGenerator.GetStrings(CharClasses.Lowercase | CharClasses.Uppercase | CharClasses.Numbers, 100, "/+*-", forceOccuranceOfEachType: true);
foreach (string s in randomAlphabetWithCustomSymbols)
System.Console.WriteLine(s);
Note :eyes:
As of version 2.0, if custom symbols are defined, there is no need to specify the symbol character class (CharClasses.Symbols),
this is assumed when custom symbols are provided
If you find this library helpful, please give it a star.
Feel free to support the project here:

Thanks in advance!
Copyright © 2024 Stuce Software Solutions under the MIT License.