-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathOutils.cs
More file actions
31 lines (25 loc) · 839 Bytes
/
Outils.cs
File metadata and controls
31 lines (25 loc) · 839 Bytes
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace Agora {
internal class Outils {
public static string TypologieAuHasard(List<string> list)
{
if (list.Count == 0)
{
throw new ArgumentException("The list is empty.");
}
using (RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider())
{
byte[] randomBytes = new byte[4];
rng.GetBytes(randomBytes);
// Convert bytes to an integer index within the list's range.
int index = (int)(BitConverter.ToUInt32(randomBytes, 0) % (uint)list.Count);
return list[index];
}
}
}
}