Ruby coin toss probability tool
Here are some suggestions to your code
Every module
I had quite a hard time to understand what it does.
Using eval can be quite dangerous so I would try to avoid it.
eval ary.inspect.split(':')[1] rescue nil

You used a module to monkey patch the Array class which is sensible. Another, even more safe way to monkey patch could be to use refinements.

Refinements are designed to reduce the impact of monkey patching on other users of the monkey-patched class. Refinements provide a way to extend a class locally.

https://docs.ruby-lang.org/en/2.4.0/syntax/refinements_rdoc.html
The safest way of course is to not use monkey patching at all. Maybe something like array.flatten.each could do the trick too?
CoinToss
Initialize reference
Initializing the reference in your constructor looks quite complicated. Maybe it could get extracted to dedicated classes.
class Reference
  def initialize(input, allowed_characters = [])
    @input = input
    @allowed_characters = allowed_characters
  end

  def to_s
    if integer?
      IntegerReference.new(input.to_i)
    else
      StringReference.new(input, allowed_characters)
    end
  end

  private

  attr_accessor :input, :allowed_characters

  def integer?
    Integer(reference)
  rescue
    false
  end
end

class IntegerReference
  def initialize(size)
    @size = size
  end

  def to_s
    build_string
  end

  def valid?
    true
  end

  private

  attr_accessor :size

  def build_string
    &quot;*&quot; * size
  end
end

class StringReference
  def initialize(string, allowed_characters = [])
    @string = string
    @allowed_characters = allowed_characters
  end

  def to_s
    return string if valid?
  end

  def valid?
    string =~ /\A[#{validation_regex}]+\z/
  end

  private

  attr_accessor :string

  def validation_regex
    allowed_characters.join(&quot;*&quot;)
  end
end

Use getter
You already setup attribute accessors but then fail to use them. Instead of @combins use combins. This has the advantage that you can change the way combins is returned by changing the getter method.
Return data instead of puts
Return data from your methods instead of using a puts. This has several advantages likes

Use the classes outside a terminal (e.g. website)
Easier to test

Naming
There are only two hard things in computer science ... Try to use speaking names and avoid abbreviations like combins, occrs, r, c. This will help to make your program easier to read and understand.
Lazy loading
Instead of setting up everything in the controller, use lazy loading and memoization.
def combinations
  @combinations ||= outcomes.repeated_permutation(@iterations).to_a
end

def iterations
  @iterations ||= reference.length
end