Here is one way,
# a matrix with 3 columns
m <- matrix(runif(300), ncol=3)
# split into a list of dataframes (of course, you can convert back to matrices)
m_split <- split(as.data.frame(m), sample(1:3, size=nrow(m), replace=TRUE))
# count nr of rows
sapply(m_split, nrow)
# Or, as in the comment below, split by given number of rows per split
nsplit <- c(30,30,40)
m_split2 <- split(as.data.frame(m), rep(1:3, nsplit))