Catelyn, I have a solution that I seemed to work in my testing.
Begin by setting your comma separated string value as participant data in your flow. In my example it's called "ListFromFlow". You can set it as shown, or if you have a collection in Architect, you can use the ToString function and specify a comma as the delimiter. 
Next, in your script, click Script in the upper left, then Script Properties, then scroll down the bottom to where you see List and toggle it on.

Next, create a List String variable with the name "ListFromFlow" with the input value enabled.

Next, create a String variable to hold the radio button selection, in my example it is 'radio_value'.
Then you will create two sets of variables, one for the content of the radio button and one to control it's visibility. You mentioned a max of 15, so you will create 15 of each as follows.
Dynamic String variable -- repeat this pattern until you have 15 total.
name = rbo_00, value = getIndexValue({{ListFromFlow}}, 0)
name = rbo_01, value = getIndexValue({{ListFromFlow}}, 1)

.....
Dynamic True/False variable -- repeat this pattern until you have 15 total.
name = rbv_00, value = ifElse(length({{rbo_00}})>0,true,false)
name = rbv_01, value = ifElse(length({{rbo_01}})>0,true,false)

.......
When creating the dynamic values, you should use the insert variable option instead of just referencing them with {{xx}}. In my experience, the script didn't work if I entered them manually.
Next, on your page you will add your radio buttons. This will be for the first button, but repeat the patter till you get to your max number.
Text={{rbo_00}}
Value = radio_value
Selected Value Text = {{rbo_00}}
Click Layout, scroll down to Visible and select rbv_00




Shortening the string that you pass in from Architect will shorten the number of radio buttons that are visible.
Hope this helps.
------------------------------
Kevin Goodwin
Mediu, Inc.
------------------------------