input <- c('5d12', '6d4', '1d2', '1d8', '3d6', '4d20', '100d100')
roll <- function(input) {
parts <- as.numeric(unlist(strsplit(input, 'd')))
sum(sample(1:parts[2], parts[1], replace=T))
}
result <- sapply(input, function(value) {
sum(roll(value))
})
print(data.frame(input=input, value=result))
input value 5d12 5d12 34 6d4 6d4 13 1d2 1d2 1 1d8 1d8 1 3d6 3d6 11 4d20 4d20 62 100d100 100d100 5126