If you want to keep the 0-1 proportion within ID
s, set replace=F
(which is by default):
df1 <- transform(df, Score=ave(Score, ID, FUN=function(b) sample(b, replace=F)))
If you want to keep the overall 0-1 porportion, you can simply do this:
df1 <- data.frame(ID=df$ID, Score=sample(df$Score))