1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
// **********************************************
// Dies ist eines der 322 Rezepte aus dem
// C# 2005 Premium Codebook.
// Das Snippet wurde vom Autor mit freundlicher
// Genehmigung von Addison Wesley
// bei dotnet-snippets.de veröffentlicht.
// **********************************************
using System;
using System.Security.Cryptography;
/// <summary>
/// Erzeugt echte Zufallszahlen
/// </summary>
/// <param name="count">Anzahl der zu erzeugenden Zufallszahlen</param>
/// <param name="min">Die kleinste zu erzeugende Zahl</param>
/// <param name="max">Die größte zu erzeugende Zahl</param>
/// <returns>Gibt ein Array mit den erzeugten Zufallszahlen zurück</returns>
public static byte[] GetRandomNumbers(int count, byte min, byte max)
{
// Zufallszahlen erzeugen
RNGCryptoServiceProvider csp = new RNGCryptoServiceProvider();
byte[] numbers = new Byte[count];
csp.GetBytes(numbers);
// Die Zahlen umrechnen
double divisor = 256F / (max - min + 1);
if (min > 0 || max < 255)
{
for (int i = 0; i < count; i++)
{
numbers[i] = (byte)((numbers[i] / divisor) + min);
}
}
return numbers;
}
|