Random
    
        Interface for creating random numbers and strings.
    
    File information
    
    Classes
    IRandom
    class IRandom {
public:
    static void Init(dword seed);
    static dword GetRandom();
    static void GetChars(char * out, dword len, random_char_t type = random_chars_url);
};
    Overview
    
        The IRandom interface can be used to create random numbers or strings.
    
    Public functions
    Init (static function)
    
        Obsolete! There is no need to call Init anymore, as the platform_random() function now handles this automatically, which is used inside GetRandom().
    
    GetRandom (static function)
    
        Returns a random number.
        
        Return value
        
            
                | dword | 
                
                    A 32-bit unsigned integer.
                 | 
            
        
    
    GetChars (static function)
    
        Writes a number of random characters to a buffer. Please note that the function does not do any null-termination.
        A typical application of this function is to create random passwords.
        Parameters
        
            
                | char * out | 
                
                    The buffer to write the random characters to. It must be big enough for len characters.
                 | 
            
            
                | dword len | 
                
                    The number of random characters that shall be written.
                 | 
            
            
                | random_char_t type | 
                
                    Optional parameter that specifies set of characters that shall be used.
                    
                        - random_chars_url
 
                        - 
                            
                        
 
                        - random_chars_ice
 
                        - 
                            
                        
 
                     
                 | 
            
        
        Remarks
        For each written character there are 64 different possibilities. So the random string contains only len/4 bytes of randomness.
    
    Data types
    random_char_t
    enum random_char_t {
    random_chars_url,
    random_chars_ice
};
    Overview
    The random_char_t enum defines the different charsets for random strings that are supported by the library.
    Values
    
        | random_chars_url | A set of characters that doesn't need escaping in URLs. (a-z  A-Z  0-9  !  _) | 
        | random_chars_ice | The set of characters needed for ICE/STUN passwords. (a-z  A-Z  0-9  +  /) | 
    
     Code Example 
    Creating a random number
    dword number = IRandom::GetRandom();
    Creating a random string
    char out[17];
IRandom::GetChars(out, 16, random_chars_url);
out[16] = 0;
debug->printf("random string: %s", out);