Excelを持っていないので、Googleスプレッドシートで実現する方法について調べてみました。
(1) dataのシートで全ての問題(ここでは12個)をシャッフルします
(2) testのシートでdataのシートから問題を上から任意の数(ここでは10個)取得します
Excelでデータをシャッフルする方法について調べてみましたが、質問者さんが行っている通り、行毎に乱数を生成してその乱数を基にソートするという方法が主流のようですね。
下記のページによると、Ultimate Suite for Excelというアドインを使ったら、Googleスプレッドシートと同様に簡単にデータをシャッフルできるそうですが、このアドインは有料($69)みたいです。
https://www.ablebits.com/office-addins-blog/2018/01/24/excel-randomize-list-random-sort/
Like!