ARTICLE

Generating Random Number and String in C#

Posted by Mahesh Chand Articles | String in C# November 19, 2004
The Random class defined in the .NET Framework class library provides functionality to generate random numbers. This article shows you how you can use this class to generate random numbers and strings and even combination of both.
Reader Level:

The Random class defined in the .NET Framework class library provides functionality to generate random numbers.

The Random class constructors have two overloaded forms. It takes either no value or it takes a seed value.

The Random class has three public methods - Next, NextBytes, and NextDouble. The Next method returns a random number, NextBytes returns an array of bytes filled with random numbers, and NextDouble returns a random number between 0.0 and 1.0. The Next method has three overloaded forms and allows you to set the minimum and maximum range of the random number.

The following code returns a random number:

int num = random.Next();

The following code returns a random number less than 1000.

int num = random.Next(1000);

The following code returns a random number between min and max:

private int RandomNumber(int min, int max)
{
Random random =
new Random();
return random.Next(min, max);
}

At some point, you may also want to generate random strings. I have created a method, which takes first parameter as the size of string and second parameter if you want the string to be lowercase.

/// <summary>
/// Generates a random string with the given length
/// </summary>
/// <param name="size">Size of the string</param>
/// <param name="lowerCase">If true, generate lowercase string</param>
/// <returns>Random string</returns>
private string RandomString(int size, bool lowerCase)
{
StringBuilder builder =
new StringBuilder();
Random random =
new Random();
char ch ;
for(int i=0; i<size; i++)
{
ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65))) ;
builder.Append(ch);
}
if(lowerCase)
return builder.ToString().ToLower();
return builder.ToString();
}

You can even combine the two methods - RandomNumber and RandomString to generate a combination of random string and numbers. For example, the following code generates a password of length 10 with first 4 letters lowercase, next 4 letters numbers, and last 2 letters as uppercase.

public string GetPassword()
{
StringBuilder builder =
new StringBuilder();
builder.Append(RandomString(4,
true));
builder.Append(RandomNumber(1000, 9999));
builder.Append(RandomString(2,
false));
return builder.ToString();
}

Login to add your contents and source code to this article
post comment
     

My question is "Can a Combination of random string and random number" repeat at some time?? If no then I will use it to provide it to user in the form of username (combination of random number + random string). Please remove my confusion ASAP as i have to implement this in my project. waiting....sir...

Posted by amit kumar Apr 11, 2012

If i made a program that generated many random numbers. Is there a way i could sort them so i can see easily how many times it generated each number?

Posted by Gabriella Fox Feb 19, 2012

Class is a part of the .NET framework. Just copy the code :)

Posted by Mahesh Chand Sep 08, 2011

Can you please email me at sherylkierstead@live.com? I need to use this class in a particular project and I need more info.

Posted by Sheryl Kierstead Jul 19, 2011

private int GetRandom(int len) { string guid = Guid.NewGuid().ToString(); double number = 0; int counter = 0; foreach (char c in guid) { number += Convert.ToInt32(c)*Math.Pow(10, counter); } return (int)number%len; }

Posted by dron dron Mar 27, 2011
COMMENT USING
PREMIUM SPONSORS
Over-C is a holistic consortium of communications and technology specialists. We build, deploy and market both business as well as consumer products and solutions.
Get Career Advice from Experts
SPONSORED BY
  • PDF reports have never been easier to create. With our included WYSIWYG Designer, you can layout your reports, set up your data source and let DynamicPDF ReportWriter do the rest.
Get Career Advice from Experts