Pythonの組み込みの `random` モジュールとヒストグラムを作成するための `matplotlib` ライブラリを使って、あなたが求めていることを行うコードがここにあります：

```python
import random
import matplotlib.pyplot as plt

rolls = []

for i in range(100):
    dice = [random.randint(1, 20) for _ in range(3)]
    total = sum(sorted(dice)[1:])
    rolls.append(total)

plt.hist(rolls, bins=range(2, 41), align='left', rwidth=0.8)
plt.xlabel('Total Roll')
plt.ylabel('Frequency')
plt.title('Histogram of 3d20 Rolls')
plt.show()
```

どのように動作するかは次のとおりです：

* まず、rollsと呼ばれる空のリストを作成し、サイコロの各セットの最も高い出目の合計を格納します。
* 次に、forループを使って以下のステップを100回繰り返します：
  *リスト内包とrandomモジュールのrandint関数を使って、20面体のサイコロを3つ振る。
  * sorted関数を使ってサイコロの目を昇順に並べ替え、Pythonのスライス構文(sorted(dice)[1:])を使って最も大きい2つの目を合計する。
  *合計を出目リストに追加する。
* Matplotlib ライブラリの hist 関数を使用して、出目リストの値のヒストグラムを作成する。ビンの範囲（range(2, 41)）は、最も高い2つのロールの可能な値（つまり、1 + 2 から 20 + 19）に一致するように指定し、棒グラフがきれいに並ぶように align と rwidth パラメータを設定します。
* また、xlabel、ylabel、title関数を使って、軸ラベルとタイトルをプロットに追加します。
* 最後に、show 関数を使ってプロットを表示します。
Sure, here's a code that does what you're asking for using Python's built-in `random` module and the `matplotlib` library to create the histogram:

```python
import random
import matplotlib.pyplot as plt

rolls = []

for i in range(100):
    dice = [random.randint(1, 20) for _ in range(3)]
    total = sum(sorted(dice)[1:])
    rolls.append(total)

plt.hist(rolls, bins=range(2, 41), align='left', rwidth=0.8)
plt.xlabel('Total Roll')
plt.ylabel('Frequency')
plt.title('Histogram of 3d20 Rolls')
plt.show()
```

Here's how it works:

* We start by creating an empty list called rolls that we'll use to store the total of the two highest rolls for each set of dice.
* We then use a for loop to repeat the following steps 100 times:
  *Roll three 20-sided dice using a list comprehension and the randint function from the random module.
  * Sort the rolls in ascending order using the sorted function, and then sum the two highest rolls using Python's slicing syntax (i.e., sorted(dice)[1:]).
  *Append the total to the rolls list.
* We use the hist function from the matplotlib library to create a histogram of the values in the rolls list. We specify the range of the bins (i.e., range(2, 41)) to match the possible values of the two highest rolls (i.e., 1 + 2 to 20 + 19), and we set the align and rwidth parameters to make the bars line up nicely.
* We also add axis labels and a title to the plot using the xlabel, ylabel, and title functions.
* Finally, we show the plot using the show function.