商品一覧から、種類毎にランダムな一つの商品コードだけを抽出したい・・・。

一晩考えました^^;朝起きたら、ヒラメイタ
SELECT
 pro_syubetu_id
 ,SUBSTR(
     MAX(CONCAT(LPAD(FLOOR(RAND( )*1000),4,0), pro_code))
 ,5,99) p
FROM products
GROUP BY pro_syubetu_id
products は商品テーブルで、pro_syubetu_id は商品種別(種類)。pro_code は 商品コード。
ポイントは、4行目の MAX(CONCAT(LPAD(FLOOR(RAND( )*1000),4,0), pro_name))。 ランダム関数で生成した数値 を頭文字にして、その最大値を取ります。(桁数が少ない部分はLPAD関数で0埋めしています。)これでSQL実行する度に 任意の商品が抽出されます。商品数にもよりますが、500程度の商品数で、1000までのランダム数値の最大値なら、同じ数 になることはほとんど無いので、商品コードによって偏りがでることもほとんど考えられないと思います。
その外側のSELECT は 区切り文字 '@'以下の文字列を表示させるだけのものです。