I don't know that I'd call any script that resorts to
run script as cool -- to me, it has a vaguely dirty feel about it. OTOH, in this particular case, it may be a good choice.
But I suspect that in the real world, most of the time the string will contain all reals or all integers, not a mixture of both. In those cases, using text item delimiters and coercing is really much nicer code IMO, as well as faster -- and not particularly long.
Alternatively, and faster with longer lists:
use AppleScript version "2.4" -- Yosemite (10.10) or later
use framework "Foundation"
use scripting additions
set stringOfNumbers to "1, -2, 3.1234, 4, -95.123"
set stringOfNumbers to current application's NSString's stringWithString:stringOfNumbers
set listOfNumbers to ((stringOfNumbers's componentsSeparatedByString:",")'s valueForKey:"doubleValue") as list