how do I get the "return roll" at the bottom of the "rolladice()" signal?
You don't! If your signal callback returns a value, that value won't reach the emitter. If you want to do that, don't use a signal but call the diceroll-function directly.
You can work around that as described here, e.g.:
signal roll_a_dice(min_val, max_val)
func _ready():
randomize()
connect("roll_a_dice", self, "_on_roll_a_dice")
var roll = []
emit_signal("roll_a_dice", 0, 20, roll)
print(roll)
func _on_roll_a_dice(min_val, max_val, roll):
roll.append(randi() % max_val + min_val)
But unless you have very good reasons for it, I wouldn't recommend that.