解決方法
以下のコードを参考にしてください.
return new_min + (new_max - new_min) * ((val - old_min) / (old_max - old_min))
理由
remap_rangeのイメージは以下の図のようになり、old_min(maxでもよい)とvalの距離に対するold_minとold_maxの距離の比がnew_minとvalの距離に対する、new_minとnew_maxの距離の比と一致するということがポイントになります。

これを式にすると以下のようになります。
(val - old_min) / (old_max - old_min) = (new_val - new_min) / (new_max - new_min)
ここでnew_valを左辺に移行すると、最初に示した式になります。