Click or drag to resize
Experilous.MakeItRandom Namespace
In this namespace are a variety of pseudo-random number generators (PRNGs) and numerous sets of extention methods that provide advance randomization utilities on top of them, along with a few miscellaneous helper classes.
Classes
  ClassDescription
Public classMIRandom
MIRandom is a convenience class for creating instances of the standard random engine. It also provides static access to a shared instance that is automatically created on load.
Public classRandomAngle
A static class of extension methods for generating random angles within common ranges.
Public classRandomBase
An abstract base class that eases the implementation of a random engine.
Public classRandomBits
A static class of extension methods for generating random bits.
Public classRandomChance
A static class of extension methods for generating random boolean values based on various probabilities.
Public classRandomColor
A static class of extension methods for generating random colors in various color spaces.
Public classRandomDice
A static class of extension methods for simulating random dice rolls.
Public classRandomEnum
A static class of extension methods for randomly selecting items from enumeration types.
Public classRandomFloatingPoint
A static class of extension methods for generating random floating point numbers.
Public classRandomGeometry
A static class of extension methods for generating random vectors of 2, 3, and 4 dimensions and random quaternions with various spatial attributes and constraints.
Public classRandomInteger
A static class of extension methods for generating random numbers within custom ranges.
Public classRandomListAccess
A static class of extension methods for generating random indices, typically for accessing collections using a zero-based indexing scheme.
Public classRandomRangeGenerator
A static class of extension methods for generating random numbers within custom ranges.
Public classRandomSample
A static class of extension methods for generating random numbers according to various probability distributions.
Public classRandomShuffle
A static class of extension methods for shuffling sequences of elements.
Public classRandomSignOrZero
A static class of extension methods for generating random integers from the set { -1, 0, +1 }.
Public classRandomStateGenerator
A static utility class to make it easier to seed PRNGs from a variety of common seed formats.
Public classRandomString
A static class of extension methods for generating random strings with various character sets and patterns.
Public classSplitMix64
An implementation of the IRandom interface using the 64-bit SplitMix generator.
Public classSystemRandom
Adapts the standard random engine class Random from the .NET libary to the IRandom interface.
Public classSystemRandomWrapper
Wraps an implementation of IRandom in a derivation of Random.
Public classUnityRandom
Adapts the standard Unity random class Random to the IRandom interface.
Public classXoroShiro128Plus
An implementation of the IRandom interface using the 128-bit XoroShiro+ generator.
Public classXorShift1024Star
An implementation of the IRandom interface using the 1024-bit XorShift* generator.
Public classXorShift128Plus
An implementation of the IRandom interface using the 128-bit XorShift+ generator.
Public classXorShiftAdd
An implementation of the IRandom interface using the XorShift-Add (also know as XSadd) generator.
Interfaces
  InterfaceDescription
Public interfaceIBitGenerator
Interface for a generator of bits.
Public interfaceIBooleanGenerator
An interface for any generator of boolean values, with the pattern or distribution of values to be determined by the implementation.
Public interfaceIDiceGenerator
An interface for any generator of dice rolls, with the quantity, side count, and other dice attributes to be determined by the implementation.
Public interfaceIElementGeneratorTElement
An interface for any generator of list element access.
Public interfaceIEnumGeneratorTEnum
An interface for any generator of enumeration items.
Public interfaceIRandom
Interface for a basic engine for generating sequences of raw pseudo-random bits.
Public interfaceIRangeGeneratorTNumber
An interface for any generator of numeric data within a range, with the pattern or distribution of values to be determined by the implementation.
Public interfaceISampleGeneratorTNumber
An interface for any generator of numeric data sampled according to a probability distribution, with the pattern or distribution of values to be determined by the implementation.
Public interfaceIWeightedElementGeneratorTElement, TWeight, TWeightSum
An interface for any generator of list element access with non-uniform distribution.
Public interfaceIWeightedIndexGeneratorTWeight, TWeightSum
An interface for any generator of list element indices with non-uniform distribution.
Enumerations
  EnumerationDescription
Public enumerationRandomStringBase64CharacterPairs
Indicates the additional two characters to use when generating a Base64 string, in addition to the standard 62 characters consisting of the 10 decimal digits and both the 26 lower case and 26 upper case letters of the English alphabet.
Public enumerationRandomStringCasing
Indicates the type of letter casing to use when generating random strings, for character sets where casing is relevant.