1. select * from table_name order by random() limit 3; 이렇게 쿼리를 날리면 랜덤으로 3개를 조회 할 수 있습니다.
추가 / 삭제는 DB에 insert / delete를 하면 됩니다.
2번은 정확한 의도를 모르겠지만 DB에서 조회한 것을 리스트뷰가 아니라 버튼으로도 표현 할 수 있습니다.
리스트 뷰와 같은 adapterView를 사용하는 이유는 데이터의 갯수가 많을 경우 뷰를 재사용하는 구조이기에
성능면에서 유리합니다. 100개의 데이터를 그냥 버튼 같은 뷰를 100개 만들어 스크롤 뷰로 감싸서 보여주는 것 보다
리스트 뷰나 그리드 뷰 를 이용하여 한 화면에 보이는 갯수 만큼 뷰를 만들어 재사용하는 편이 성능이 좋습니다.
3. 디자인을 어떻게 하냐에 따라 다릅니다.