Это ещё фигня, у нас было поинтереснее, как вам варианты: "Н1-61,Н71-89,93,Н97..", "Н1-25,Н29..,Ч2-36", "Н1-19,23,25,27,31,33,37,Н41..", "Н29-43,Н47-53,Н59..,Ч26.." И вот это «было», работает до сих пор. :)
Тебе точно нужно прямо в запросе это делать? Не очень понятно зачем. Проще будет в приложении распарсить эту порнографию. Даже если нужно потом что-то выбирать по результату лучше сделать отдельный запрос чем городить костыли.
А если надо, то лучше раскидать это в нормальную таблицу и не сношать себе мозг.
CREATE FUNCTION `sp_get_rnd_val`(src varchar(100), delim char(1)) RETURNS varchar(100)
BEGIN
DECLARE c, r int;
SET c = 1 + LENGTH(src) - LENGTH(REPLACE(src, delim, ''));
SET r = 1 + FLOOR(RAND() * c);
return SUBSTRING_INDEX(SUBSTRING_INDEX(src, delim, r), delim, -1);
END