Ayer hice dos apps en Java que hacen esto. Con la libreria Twitter4j es muy muy sencillo publicar. 10 lineas de codigo en Java, y un archivo de propiedades con los tokens OAuth de Twitter.
En una app abro una conexion a una URL y obtengo un texto desde ahi (siempre la misma URL, devuelve texto random), cierro la conexion, y publico ese texto como un tweet.
En la otra tengo un txt (tambien se puede hacer con una base de datos embebida, pero no vi que valiera la pena) con una linea por cada tweet. Cargo todo el archivo en memoria en un hashmap (hashtable con interfaz map<key,value>) y genero un numero al azar entre 0 y la clave mas alta y saco (borro) del mapa la clave. A los 10 fallos seguidos (si ya esta muy vacio) vuelvo a cargar el mapa desde el disco. No es muy wow el sistema, y requiere tener todo en memoria, pero a mi me alcanza. Si tenes algo MUY grande y/o de tamaño desconocido, te puedo apuntar a un par de soluciones mas interesantes como reservoir sampling o una estructura de indices similar a la paginacion de memoria de cualquier SO.
En ambos casos si el texto a twittear es de mas de 140 caracteres armo varios tweets cortando el texto en la ultima palabra completa que entre.