Creating some Loaded Dice to make our board game fairer
Performance
If you intend on using this for (e.g.) large-scale Monte-Carlo simulation, consider moving to vectorized Numpy rather than base Python.
Direct generators
There's no need for yield here:
    for v in self.history.values():
        yield 1 / v

Instead,
return (1/v for v in self.history.values())

Counter initialization
roll_history can be reduced, I think, to
return Counter(
    (
        sum(self.roll_value_from_index(roll_index)),
        count,
    )
    for roll_index, count in self.history.items()
)

In other words, Counter accepts an iterable of key-count tuples. If the above generator expression seems unwieldy to you, write a separate method to yield roll-count pairs:
    for roll_index, count in self.history.items():
        roll_1, roll_2 = self.roll_value_from_index(roll_index)
        yield roll_1 + roll_2, count