◆ Chrome で一度フォーカスあてた要素の中身を書き換えて setSelectionRange をすると 0, 0 にセットされる
◆ Firefox はちゃんとセットした場所が選択状態になってる

<!doctype html>

<div>
<input id="i">
<button id="b">b</button>
</div>
<div id="log"></div>

<script>
i.value = "aaaaaa"
b.onclick = eve => {
log.innerHTML += `<div>${i.selectionStart}, ${i.selectionEnd}</div>`
i.value += "b"
i.setSelectionRange(3, 5)
}
</script>

ボタンを押すと input を書き換えた後で選択範囲を設定します
また実行前の選択範囲も表示しています

ページを開いて即ボタンを連打すると 最初は最後にカーソルがあるので 「6, 6」 が表示され以降は 「3, 5」 が繰り返されます
これが想定した動きなのですが いったん input 内の適当な場所にカーソルを移動したり範囲選択をすると 「0, 0」 が繰り返されます

4, 4
0, 0



4, 5
0, 0


という感じです
1 回目の表示は選択した範囲で 範囲を設定したあとの 2 回目以降は 「0, 0」 の繰り返しです

i.value に文字を追加していますが追加しない場合は正常にセットした位置が選択されています

これは Chrome の動きで Firefox は想定どおりどこにフォーカスがあろうと設定した 「3, 5」 が表示されます