diff --git a/Reactor/Extensions/RandomExtensions.cs b/Reactor/Extensions/RandomExtensions.cs
new file mode 100644
index 0000000..fb2a587
--- /dev/null
+++ b/Reactor/Extensions/RandomExtensions.cs
@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace Reactor.Extensions;
+
+public static class RandomExtensions
+{
+ ///
+ /// Returns random from using
+ ///
+ public static T? Random(this IEnumerable input, Random random)
+ {
+ var list = input as IList ?? input.ToList();
+ return list.Count == 0 ? default : list[random.Next(0, list.Count)];
+ }
+
+ /// Returns a random double that is within a specified range.
+ public static double NextDouble(this Random random, double minValue, double maxValue)
+ {
+ return random.NextDouble() * (maxValue - minValue) + minValue;
+ }
+}